HTTP 协议的三次握手

HTTP(Hypertext Transfer Protocol):超文本传输协议

TCP(Transmission Control Protocol):传输控制协议

 

1、HTTP协议和TCP/IP协议的区别?
答:TCP/IP协议是传输层协议,主要解决数据如何在网络中传输。而HTTP是应用层协议,主要解决如何包装数据。Web使用HTTP协议作应用层协议,以封装HTTP文本信息,然后使用TCP/IP作传输层协议将它发送到网络上。

HTTP协议的七层协议如下:

7

应用层

HTTP、SMTP、FTP Telnet、SIP、DNS、RTSP、XMPP

6

表示层

XDR、ASN.1、SMB、AFP、NCP

5

会话层

ADSP、TLS、SSH、RPC、RTCP、ASP、SCP

4

传输层


TCP、UDP、RTP、SCTP、SPX、ATP、IL

3

网络层

IP、ICMP、IGMP、IPX、BGP、OSPF、RIP、IGRP、EIGRP、ARP

2

数据链路层

以太网、令牌环、HDLC、帧中继、ISDN、ATM

1

物理层

线路、无线电、光纤、信鸽

 

 

第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认;

第二次握手:服务器收到syn包,必须确认客户的syn(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态;

第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。

完成三次握手,客户端与服务器端开始传送数据。以买家和淘宝客服举例说明,如下图所示:

 

 HTTP的三次握手_客户端

 

 HTTP的三次握手_客户端_02

 

 

 

 

2、HTTP协议的关键字段解释
打开谷歌浏览器,按键盘上的F12键进入控制台(有的笔记本电脑按F12键的时候,可能没反应,此时需要Fn键和F12键一起按下去就可以进入控制台了)

在浏览器中打开百度网页,在打开的控制台中点击“Network”—>“XHR”—>“Headers”

Request URL:请求的URL地址

Request Method:GET,这里表示请求的类型是GET类型,常见的还有POST类型、PUT类型、DELETE类型。

Status Code:200OK,这里的200OK是HTTP的响应状态码,200表示正常,没有错误信息。

Cookie:Cookie 表示一个保存在客户机中的简单的文本文件, 这个文件与特定的Web文档关联在一起, 保存了该客户机访问这个Web文档时的信息, 当客户机再次访问这个Web文档时这些信息可供该文档使用。

Host:这里的Host指的是网站的网络服务器。

Content-Type:内容类型,一般是指网页中存在的Content-Type,用于定义网络文件的类型和网页的编码,决定文件接收方将以什么形式、什么编码读取这个文件。

User-Agent:User Agent中文名为用户代理,简称 UA,它是一个特殊字符串头,使得服务器能够识别客户使用的操作系统及版本、CPU 类型、浏览器及版本、浏览器渲染引擎、浏览器语言、浏览器插件等。

HTTP的三次握手_客户端_03