常用的响应报头
Location
Location响应报头域用于重定向接受者到一个新的位置。Location响应报头域常用在更换域名的时候。
Server
Server响应报头域包含了服务器用来处理请求的软件信息。与User-Agent请求报头域是相对应的。下面是
Server响应报头域的一个例子:
Server:Apache-Coyote/1.1
WWW-Authenticate
WWW-Authenticate响应报头域必须被包含在401(未授权的)响应消息中,客户端收到401响应消息时候,并发送Authorization报头域请求服务器对其进行验证时,服务端响应报头就包含该报头域。
eg:WWW-Authenticate:Basic realm="Basic Auth Test!" //可以看出服务器对请求资源采用的是基本验证机制。
HTTP协议详解,可阅读:http://www.cnblogs.com/li0803/archive/2008/11/03/1324746.html
与目的主机断开TCP连接(四次挥手)
TCP连接释放过程:
- 浏览器向目的主机发出TCP连接结束请求报文,此时进入FIN WAIT状态;
- 该报文FIN标志位设为1,表示结束请求;
- TCP结束请求报文通过IP(DNS)->MAC(ARP)->网关->目的主机;
- 目的主机收到数据帧,通过IP->TCP,TCP协议单元回应结束应答报文;
- 当前只是进行回应,因为目的主机可能还有数据要传,并不急着断开连接;
- 该报文中ACK标志位设为1,表示收到结束请求;
- 目的数据发送完所有数据后,向我的主机发出TCP连接结束请求报文;
- 该报文FIN标志位设为1,表示结束请求;
- TCP结束请求报文通过IP(DNS)->MAC(ARP)->网关->我的主机;
- 我的主机收到数据帧,通过IP->TCP,TCP协议单元回应结束应答报文,此时进入TIME WAIT状态,因为不相信网络是可靠的,如果目的主机没收到还可以重发;
- 该报文中的FIN标志位均设为1,表示结束应答;
- 该TCP回应报文通过IP(DNS)->MAC(ARP)->网关->目的主机;
- 目的主机关闭连接;
- TIME WAIT等待结束后,没有收到回复,说明目的正常关闭了,我的主机也关闭连接。
总结:
URL访问网站时的网络传输全过程,可以归纳为:
首先通过域名找到IP,如果缓存里没有就要请求DNS服务器;得到IP后开始与目的主机进行三次握手来建立TCP连接;连接建立后进行HTTP访问,传输并获取网页内容;传输完后与目的主机四次挥手来断开TCP连接。