HTTP与TCP连接的那些事
这是我看到微信公众号看到的,然后通过wireshark分析,巩固知识。
准备工具
Wireshark
当接收到一个URL的时候,会执行的步骤
TCP是可靠的数据管道
TCP按照有序、无差错的承载HTTP数据。从TCP连接会以顺序、正确的传递。
TCP流是分段的、由IP分组传送
HTTP
网络接口(数据链路层)
IP(网络层)
TCP(传输层)
HTTP(应用层)
HTTPS
网络接口
IP
TCP
TSL 或 SSL
HTTP
HTTP要发送一条报文时候,会以流的形式将报文数据内容通过一条打开的TCP按照有序的方式进行传输。


TCP序号Seq序号,占32位
标志位:共6个,即URG、ACK、PSH、RST、SYN、FIN
(A)URG:紧急指针(urgent pointer)有效。
(B)ACK:确认序号有效。
(C)PSH:接收方应该尽快将这个报文交给应用层。
(D)RST:重置连接。
(E)SYN:发起一个新连接。
(F)FIN:释放一个连接。
保持TCP连接的持续不间断地运行
TCP连接通过
源IP地址
源端口
目的地址
目的端口
seq=0[SYN,ACK] 并声明发送讯号seq=0 确认讯号ack=1[ACK]报文,发送讯号seq=1 确认讯号ack=1



ack=FIN+SEQ 即145 = 1+ 144ack = FIN+SEQ 即 459=1+458向http://server.itaolaity.com:32773/add?a=1&b=8 发起请求,响应9。

前面三个是TCP三次握手,第四条报文是客户端向服务器发送的HTTP请求包。以及服务器给客户端的响应。 最后四次挥手。
当点击当个报文详情的时候可以看到有5个描述信息。
Ethernet II, Src: ____, Dst: Tp-LinkT_6a:0a:1f (____)可以看到源mac地址和目的mac地址

Internet Protocol Version 4, Src: 192.168.1.102(本机IP), Dst: 112.124.30.55(客户端IP)IP层的分析
Transmission Control Protocol, Src Port: 14611, Dst Port: 32773(服务器端口), Seq: 1, Ack: 1, Len: 468TCP分析
Hypertext Transfer ProtocolHTTP请求控制协议
可以看到请求行信息 、请求方法、请求的URI 、请求的主机 、浏览器类型、请求语言、请求的编码格式
使用\r\n\r\n 结束

总结:
再看看服务器给出的响应报文
包括了响应行信息 HTTP/1.1 200 \r\n
