P5-uri-normalize

Jul 20, 2023

Normalize URIs according to RFC 3986

URINormalize normalizes URIs according to RFC 3986.

This has a number of useful applications in allowing URIs to be compared with fewer false negatives. For example, all of the following URIs will normalize to the same value

HTTPS//www.example.com443/../test/../foo/index.html https//WWW.EXAMPLE.COM/./foo/index.html https//www.example.com/666f6f/index.html https//www.example.com/foo/index.html

That is, they will all be normalized into the last value.

Example

use URI; use URINormalize qw normalize_uri remove_dot_segments ; my $uri = URI->new’HTTPS//www.Example.com443/../test/../foo/index.html’;

say normalize_uri$uri; #> https//www.example.com/foo/index.html say remove_dot_segments$uri; #> HTTPS//www.Example.com443/foo/index.html



Checkout these related ports:
  • Zope213 - Object-based web application platform Version 2.13
  • Zola - Fast static site generator
  • Zgrab2 - Fast Go application scanner
  • Zerowait-httpd - Lightweight and fast http server
  • Zenphoto - Simpler web photo gallery
  • Zend-framework - Framework for developing PHP web applications
  • Yuicompressor - The Yahoo! JavaScript and CSS Compressor
  • Ytdl - YouTube downloader written in Go
  • Yt-dlp - Command-line program for downloading videos from various platforms
  • Youtube_dl - Program for downloading videos from various services
  • Yourls - Your Own URL Shortener
  • You-get - Dumb downloader that scrapes the web
  • Yaws - Web server for dynamic content written in Erlang
  • Yarr - Yet another rss reader
  • Yarn - Package manager for node, alternative to npm (meta port)