图解HTTP(一)
TCP/IP协议族
TCP/IP是互联网相关的各类协议族的总称。
TCP/IP的分层管理
-
按层次分别分为:应用层、传输层、网络层和数据链路层
-
各层次的功能:
a. 应用层:决定了向用户提供应用服务时通信的活动,常见的有FTP和DNS等。
b. 传输层:提供处于网络连接中的两台计算机之间的数据传输,该层包含TCP和UDP两种不同的协议。
c. 网络层:用来处理网络上流动的数据包,常见的IP。
d. 链路层:用来处理连接网络的硬件部分。 -
传输流程图:
通信流程图.png
IP协议
IP协议的作用是把各种数据包传送给对方,为了保证能够正确传送给对方,这里需要两个重要的条件:IP地址和MAC地址。
- IP地址:指明了节点被分配到的地址
- MAC地址:网卡所属的固定地址
- ARP协议:IP间的通信依赖于MAC地址。在网络上,通信的双方在同一局域网内的情况是很少的,通常是经过多台计算机和网络设备中转才能连接到对方,而在中转过程时,会利用下一站中转设备的MAC地址来搜索下一个中转目标。这时候,会利用ARP协议(一种解析地址的协议),根据通信的IP地址就可以反查到对应的MAC地址。
TCP协议
TCP协议位于传输层,提供可靠的字节流服务。所谓的字节流服务是指将大块数据分割为报文段为单位的数据包进行管理。
-
三次握手:确保数据能准确到达目标
握手过程中使用了TCP的标志——SYN和ACK
三次握手.png
a.首先Client向Server发送一个SYN信号
b.Server接收到SYN信号后,发送SYN/ACK信号给Client,这样Client就能确认Server端是正确的。
c. Client再发送ACK给Server,这样Server就能确认Client端是正确的。
DNS服务
DNS服务.pngDNS服务是提供域名到IP地址之间的解析服务。用户通常使用主机名或域名来访问对方的计算机,而不是直接通过IP地址。
URI和URL
URI为统一资源标识符,而URL为Web浏览器等访问Web页面时需要输入的网页地址,比如,http://hackr.jp/就是一个URL。
-
URI格式
URI格式.png
a. 协议方案名:通常为http或https,ftp等
b. 登录信息:指定用户名和密码作为从服务器端获取资源时必要的登录信息,为可选项
c. 服务器地址:可以指定为域名或者IP地址
d. 服务器端口号:可选项,若忽略,则使用默认端口号
e. 文件路径:服务器上文件路径来定位特指的资源
f. 查询字符串:已指定文件路径内的资源
g. 片段标识符:已获取资源的子资源
HTTP协议
-
请求报文
请求报文.png -
响应报文
响应报文.png -
HTTP中可使用的方法
- GET:获取资源
- POST:传输实体主体
- PUT:传输文件,但自身不带验证机制,存在安全性问题
- HEAD:获取报文首部
- DELETE:删除文件
-
OPTIONS:询问资源支持的方法
OPTIONS.png
7.TRACE:追踪路径。发送请求时,在 Max-Forwards 首部字段中填入数值,每经过一个服 务器端就将该数字减 1,当数值刚好减到 0 时,就停止继续传输,最 后接收到请求的服务器端则返回状态码 200 OK 的响应。
TRACE.png
-
CONNECT:要求用隧道协议连接代理。CONNECT 方法要求在与代理服务器通信时建立隧道,实现用隧道协 议进行 TCP 通信。主要使用 SSL(Secure Sockets Layer,安全套接 层)和 TLS(Transport Layer Security,传输层安全)协议把通信内容 加 密后经网络隧道传输。
CONNECT.png
-
持久连接:只要任意一端没有明确提出断开连接,则保持TCP连接状态,以减少TCP连接的重复建立和断开所造成的额外开销,减轻了服务器端的负载。
-
管线化:实现并行发送多个请求,而不需要一个接一个地等待响应。