不管是日常的web开发还是准备面试题的时候,http的请求过程都是必须要了解的一个知识点,这篇文章就来和大家一起学习了解一下HTTP通信机制的请求过程。
原理
众所周知,HTTP协议是建立在TCP网络连接协议基础之上的一种web通信协议,它有“四个基于”的特点:
请求与响应:客户端发送请求,服务器端响应数据
无状态的:协议对于事务处理没有记忆能力,客户端第一次与服务器建立连接发送请求时需要进行一系列的安全认证匹配等,因此增加页面等待时间,当客户端向服务器端发送请求,服务器端响应完毕后,两者断开连接,也不保存连接状态,颇有提上裤子不认人的意味,下一次客户端向同样的服务器发送请求时,由于他们之前已经遗忘了彼此,所以需要重新建立连接。
应用层:Http是属于应用层的协议,配合TCP/IP使用。
TCP/IP:Http使用TCP作为它的支撑运输协议。HTTP客户机发起一个与服务器的TCP连接,一旦连接建立,浏览器(客户机)和服务器进程就可以通过套接字接口访问TCP。
请求过程
HTTP的请求过程可以直观地用下图所示:
可以看到在一次完整的HTTP通信过程中,Web浏览器与Web服务器之间将完成下列几个步骤:
1. 域名解析
2. 发起TCP的3次握手
3. Web浏览器向Web服务器发送http请求报文
一旦建立了TCP连接,Web浏览器就会向Web服务器发送请求命令。例如:GET/sample/hello.jsp HTTP/1.1。
一个HTTP请求报文由请求行(request line)、请求头部(headers)、空行(blank line)和请求数据(request body)4个部分组成。
3.1 请求行
请求行分为三个部分:请