浅析 URL

136 阅读4分钟

浅析 URL

URL

url等于协议+域名或ip+端口号+路径+查询字符串+锚点

URL.png

HTTP基础概念

HTTP 是超文本传输协议,也就是HyperText Transfer Protocol HTTP 协议是一个双向协议

我们在上网冲浪时,浏览器是请求方,目标网站就是响应方。双方约定用 HTTP 协议来通信,于是浏览器把请求数据发送给网站,网站再把一些数据返回给浏览器,最后由浏览器渲染在屏幕,就可以看到图片、视频了。

请求

主要分为请求头、请求行、请求体,请求体一般在get请求中为空。

  • 请求动词:路径+查询参数 协议/版本
  • Host:域名或IP
  • Accept:text/html
  • Content-type:请求体的格式
  • 回车
  • 请求体

响应

主要分为状态行、响应头、响应体。可查文档RFC 2616 第六章

  • 协议/版本 状态字符串
  • Content-type:请求体的格式
  • 回车
  • 响应体

IP

在 TCP/IP 网络通信时,为了保证能正常通信,每个设备都需要配置正确的 IP 地址,否则无法实现正常的通信。

要想获取IP,需要先获取一个路由器,在购买了电信运营商的服务后,运营商会分配给用户一个外网IP,并绑定在路由器上,由于国内外网IP有限,IP并不是固定值,每次重启路由器,都有可能更换外网IP地址。

而路由器会在家里创建一个内网,内网中的设备会使用内网IP,一般路由器会给自己分配一个好记的内网ip,即:192.168.1.1

路由器的功能:

路由器有两个IP,一个外网IP一个内网IP,内网中的设备可以互相访问,但是不能直接访问外网,若要访问外网,必须经过路由器中转;外网中的设备可以互相访问,但是无法访问内网设备,如果想把内容送往内网,也必须经过路由器中转。

所以内网和外网是两个隔绝的空间,中间只能通过路由器中转才能互相访问,所以路由器通常也叫做网关。

ip的作用:

  • 如何定位一台设备
  • 如何封装数据报文,以便跟其它设备交流

http.jpg

端口

一台服务器可以提供很多个服务,每个服务都有一个自己的号码,这个号码叫做端口。比如提供http服务就是80端口,提供https服务是443端口,每台机器一共有65535个端口,基本可以满足使用。具体哪个端口提供什么服务,可以搜维基百科。

0到1023(2的10次方-1)号端口是留给系统使用,要想使用必须获得管理员权限,其它端口则用给普通用户使用。

域名

每台设备都有自己的ip地址,一个域名可以对应不同的ip地址,主要考虑是一台设备服务超载,这个叫做负载均衡;同时一个ip也可对应不同域名,这个叫做共享主机,只有在经济实力不足时会使用。

通常IP会和域名绑定在一起,当我们用浏览器访问别人的内容时,通常记不住别人设备的ip地址,一般都是通过域名访问,但域名并不是直接指定的某台设备的ip地址,这就需要有一个中间人DNS服务器,DNS会查找到这个域名所对应的ip地址,并返回地ip址,然后浏览器才会访问这个ip地址。

DNS

我们在上网的时候,通常使用的方式是域名,而不是 IP 地址,因为域名方便人类记忆。那么实现这一技术的就是 DNS 域名解析,DNS 可以将域名网址自动转换为具体的 IP 地址。

DNS 中的域名都是用句点来分隔的,比如 www.baidu.com;这里的句点代表了不同层次之间的界限。

在域名中,越靠右的位置表示其层级越高,类似一个树状结构:

根 DNS 服务器
顶级域 DNS 服务器(com)
权威 DNS 服务器(server.com)

根域的 DNS 服务器信息保存在互联网中所有的 DNS 服务器中。这样一来,任何 DNS 服务器就都可以找到并访问根域 DNS 服务器了。

因此,客户端只要能够找到任意一台 DNS 服务器,就可以通过它找到根域 DNS 服务器,然后再一路顺藤摸瓜找到位于下层的某台目标 DNS 服务器。