因为有个工程要用到http协议,复习了下相关知识,整理出来,相信看完后就可以了解这个过程~
1. 几个重要概念
本节所讲会在第二节中用到。
1)URL(统一资源定位符):每个文档在万维网范围内有唯一的标识符
格式:<协议>://<主机>:<端口>/<路径>,不区分大小写
协议有:ftp、http等;<主机>是存放资源的主机在因特网中的域名,也可以是IP地址;
<端口>和<路径>有时候可以省略
2)万维网(WWW):以Client/Server方式工作。浏览器是client,万维网文档驻留的计算机是server(万维网服务器)
工作流程:a. Web用户用浏览器(url)与web服务器建立连接,发出浏览器请求;
b. Web服务器把url转换成文件 路径,返回信息给浏览器;
c. 通信完成,关闭连接
3)TCP: 是在IP层之上实现的可靠的数据传输协议。TCP报文包含的几个重要的字段:
源端口和目的端口:
序号字段:TCP连接中的数据流的每个字节都占一个序号。序号字段是本报文的第一个字节的序号。
确认号字段:指期望收到的下一个报文的第一个字节的序号。如确认号为N,则N-1为止的数据都已收到
确认位 ACK:仅当ACK=1时,确认号字段才有效。
同步位 SYN:SYN=1,ACK=0表示这是一个连接请求报文; SYN=1,ACK=1 表示同意建立连接;
4)DNS(域名解析系统):在internet中域名与IP地址一 一对应,域名便于人记忆,但机器之间只互相认识IP。
域名与IP地址之间的转换工作是域名解析。专门进行域名解析的服务器就是DNS。
2. http操作过程(本文核心)
http协议是面向事务的应用层协议,规定了浏览器与服务器之间的请求和响应格式规则,是万维网上可靠的通信协议。
http使用TCP连接进行可靠的传输,默认端口号为80.
过程: 1)浏览器分析超链接指向页面的url ,解析到所要使用的协议为http
2)浏览器向DNS(域名解析系统)请求www.xidian.edu.cn 的IP地址
3)DNS解析出西电服务器的IP地址
4)浏览器与服务器建立TCP连接(默认端口号80)
5)浏览器发出http请求:GET/chinese/index.htm
6)服务器通过http响应把文件index.htm发送给浏览器
7)TCP连接释放
8)浏览器将文件index.htm进行解析,将web页展示给用户
TCP的 三次握手协议:是用于建立客户机与服务器之间的连接的
1)客户端TCP向服务器TCP发送一个连接请求报文段,不含应用层数据,SYN=1,
客户机随机选择一个起始序号 seq=x(不携带数据,消耗一个序号)
2)服务器TCP收到连接请求报文段,同意建立连接,就向客户机发送确认,SYN=1, ACK=1,
确认号字段seq=x+1; 并向服务器随机产生起始序号seq=y(确认报文不携带数据,消耗一个序号)
并为该TCP连接分配TCP缓存和变量。
3)客户机收到确认报文段后,向服务器给出确认。也要给该连接分配缓存和变量。ACK=1, 序号字段 x+1,
确认号字段为y+1。(这一步也可以携带客户机对服务器的请求数据)
3. http报文格式