- HTTP结构图
- HTTP结构之请求篇
(1)组成
http请求报文由三部分组成,分别是:请求行(请求头)、消息报头、请求正文。
- 请求头(请求行)以一个方法符号开头,以空格分开,后面跟着请求的URI和协议的版本,格式如下:
Method Request-URI HTTP-Version CRLF
其中 Method表示请求方法;Request-URI是一个统一资源标识符;HTTP-Version表示请求的HTTP协议版本;CRLF表示回车和换行(除了作为结尾的CRLF外,不允许出现单独的CR或LF字符)。请求方法如下:
- 请求正文(实体主体):一般不用
(2)请求报文的例子
GET /chn/yxsz/index.htm HTTP/1.1 /*请求行使用相对URL*/
Host:www.tsinghua.edu.cn /*此行为首部行的开始,给出主机的域名*/
Connection:close /*告诉服务器发送完请求的文档可释放连接*/
user-Agent:Mozilla/5.0 /*表明用户代理是使用Netscape浏览器*/
Accept-Language:cn /*表示用户希望优先得到中文版本的文档*/
(3)HTTP请求过程(从URL输入到页面展现发生什么?)
a.域名解析(浏览器通过向 DNS 服务器发送域名,DNS 服务器查询(查询缓存)到与域名相对应的 IP 地址,然后返回给浏览器,浏览器再将 IP 地址打在协议上,同时请求参数也会在协议搭载,然后一并发送给对应的服务器)
- 查找浏览器缓存(DNS缓存)
- 查找操作系统缓存(如果浏览器缓存没有,浏览器会从hosts文件查找是否有DNS信息)
- 查找路由缓存
- 查找ISP缓存
- 查找ISP缓存ISP 是互联网服务提供商(Internet Service Provider)的简称,ISP 有专门的 DNS 服务器应对 DNS 查询请求
- 根服务器:ISP 的 DNS 服务器还找不到的话,它就会向根服务器发出请求,进行递归查询(DNS 服务器先问根域名服务器.com 域名服务器的 IP 地址,然后再问.baidu 域名服务器,依次类推)
b.发起TCP的3次握手(浏览器获得对应的ip地址后,浏览器与远程Web
服务器通过TCP
三次握手协商来建立一个TCP/IP
连接。)
c.建立TCP连接后发送HTTP请求报文