网址URL的组成

602 阅读2分钟

网址的组成部分

网址由协议+主机+端口+路径+查询字符串+锚点

协议://ip:port/pathname?querystring#hash

URL由多个部分组成,下面是一个比较复杂的 URL。

https://www.xxx.com:8081/path/to/myfile.html?key1=value1&key2=value2#anchor

协议(scheme)

协议是浏览器请求服务器资源的方法,https://表示使用 HTTPS协议,http://表示使用 HTTP协议

互联网支持多种协议,必须指明网址使用哪一种协议,默认是HTTP 协议。也就是说,如果省略协议,直接在浏览器地址栏输入www.xxx.com,那么浏览器默认会访问www.xxx.com。 HTTPS 是 HTTP 的加密版本,更加安全。

HTTP 和 HTTPS 的协议名称后面是紧跟着一个冒号和两个斜杠(://),其他协议不一定如此。在磁盘本地打开某一个文件是属于file协议。

域名(host)

域名是资源所在的网站名或服务器的名字

端口(port)

同一个域名下面可能同时包含多个网站,它们之间通过端口区分。端口就是访问者告诉服务器,想要访问哪一个网站。默认端口是80,如果省略了这个参数,服务器就会返回80端口的网站。端口紧跟在域名后面,两者之间使用冒号分隔

路径(pathname)

路径是资源在网站的位置。比如:/path/index.html这个路径,指向正在访问的网站的/path子目录下面的网页文件index.html

查询字符串(parameter)

查询字符串是提供给服务器的额外信息。查询字符串的位置是在路径后面,两者之间使用?分隔

查询字符串可以有一组或多组。每组参数都是键值对(key-value)的形式,同时具有键名(key)和键值(value),它们之间使用等号(=)连接。比如:key1=value就是一个键值对,key1是键名,value1是键值,多组参数之间使用&连接,比如key1=value1&key2=value2

锚点(anchor)

锚点也是hash是网页内部的定位点,使用#加上锚点名称,放在网址的最后,比如:#anchor。浏览器加载页面以后,会自动滚动到锚点所在的位置,锚点名称通过网页元素的id属性命名。

详情参考www.bookstack.cn/read/html-t…

解析上面的URL:

https://www.xxx.com:8081/path/to/myfile.html?key1=value1&key2=value2#anchor

https://--->协议
www.xxx.com--->域名:网站名或服务器的名字
8081--->端口
/path/to/myfile.html--->pathname(路径)
key1=value1&key2=value2--->查询字符串
#anchor--->锚点

当客户端输入网址请求资源后在该网址的后端服务器会接收到pathname路径+查询字符串的信息

/path/to/myfile.html?key1=value1&key2=value2

当客户端输入域名后有如下操作:访问离客户端的网关最近的DNS解析器,然后通过DNS解析将域名解析为IP地址,主域名和子域名会被解析为IP地址加端口。域名解析出来就是服务器(ip+port)