认识 URL

基本概念

        平时我们俗称的 "网址" 其实就是说的 URL (Uniform Resource Locator 统一资源定位符). 互联网上的每个文件都有一个唯一的URL,它包含的信息指出文件的位置以及浏览器应该怎么处理它. URL 的详细规则由 因特网标准RFC1738 进行了约定. (https://datatracker.ietf.org/doc/html/rfc1738)

URL基本格式

认识 URL_第1张图片        1.协议方案名

        .常见的有 http 和 https, 也有其他的类型. (例如访问 mysql 时用的 jdbc:mysql )

        2.登陆信息

        现在的网站进行身份认证一般不再通过 URL 进行了. 一般都会省略

        3.服务器地址

        此处是一个 "域名", 域名会通过 DNS 系统解析成一个具体的 IP 地址,描述了服务器在网络中的位置

        关于 DNS 系统(域名解析系统)推荐看DNS(域名解析系统)

        4.服务器端口号

        端口号用于区分服务器上的应用程序

        5.带层次的文件路径

        具体访问到的服务器资源

        6.查询字符串

        在URL中?后的就是查询字符串(query string),作用是向服务器描述请求资源的属性(比如买面条时和老板说多放香菜少放葱一样)本质是一个键值对结构. 键值对之间使用 & 分隔. 键和值之间使用 = 分隔

        7.片段标识符

        不太常见,主要是在文档类的网站中能够看到,主要用于页面内跳转,通过不同的片段标识跳转到文档的不同章节

实际上对应URL来说,上述的几个部分都是可以省略的(不是哪个部分必须得有)

        1.协议名省略

        省略后默认为 http://

        2.IP地址/域名省略

        此时访问的就是当前服务器的地址

        3.端口号省略(相当常见的)

        端口号省略后,浏览器会自动加上端口(这个端口表示访问服务器的哪个应用程序),如果是HTTP协议,自动添加的端口就是80,如果是HTTPS协议,自动添加的端口就是443(1-1024是知名端口号)

        因此一些商业产品部署服务器的时候,往往会遵守以上的规则,把HTTP绑定到80号端口,HTTPS绑定到443号端口

        4.带层次的文件路径省略

        带层次的文件路径省略后,访问到的资源就是根文件的内容,一般就是主页的HTML文件

        5.其他的很明显能省略

关于 URL encode

        像 / ? : 等这样的字符, 已经被url当做特殊意义理解了. 因此这些字符不能随意出现. 比如, 某个参数中需要带有这些特殊字符, 就必须先对特殊字符进行转义. 一个中文字符由 UTF-8 或者 GBK 这样的编码方式构成, 虽然在 URL 中没有特殊含义, 但是仍然需 要进行转义. 否则浏览器可能把 UTF-8/GBK 编码中的某个字节当做 URL 中的特殊符号. 转义的规则如下: 将需要转码的字符转为16进制,然后从右到左,取4位(不足4位直接处理),每2位做一 位,前面加上%,编码成%XY格式

你可能感兴趣的:(网络,网络,tcp/ip,服务器)