HTTP协议是Hype Text Transfer Protocol(超文本传输协议)的缩写,HTTP协议是面向事物的应用层的协议。
HTTP协议的特点:
可靠性:HTTP使用了面向连接的TCP作为传输层协议,保证了数据的可靠传输
无连接:虽然HTTP使用了TCP连接,但是通信的双方在交换HTTP报文之前不需要先建立HTTP连接。
无状态:同一个客户第二次访问同一个服务器上的页面时,服务器上的响应与第一次被访问时相同
HTTP的状态码:
1xx:表示通知信息,如请求收到了或者正在处理
2xx:表示成功,如接受或者知道了
3xx:表示重定项,如要完成请求还需要进一步的处理
4xx:表示客户的差错,如请求中有错误的语法或不能完成
5xx:表示服务器的差错,如服务器失效无法完成请求
常见的状态码:
200:客户端请求成功
302:重定项
403:服务器收到请求,但是拒绝提供服务
404:请求资源不存在
500:服务器发生不可预期的错误
503:服务器当前不能处理客户端的请求,一段时间后可能恢复正常
一次完整的HTTP请求所经历的7个步骤
1.建立TCP连接
在HTTP工作开始之前,WEB浏览器首先要通过网络与Web服务器建立连接,该连接通过TCP来完成,一般TCP连接的端口号是80
2.Web浏览器向Web服务器发送请求命令
一旦建立了TCP连接,Web浏览器就会向Web服务器发送请求命令
3.Web浏览器发送请求头信息
浏览器发送请求命令之后,还要以头信息的形式向Web服务器发送一些别的信息,之后浏览器发送了一空白行来通知服务器,它已经结束了该头信息的发送
4.Web服务器应答
客户机向服务器发送请求后,服务器会给客户机回送应答,HTTP/1.1 200 OK,应答的第一部分是协议的版本号和应答状态码
5.Web发送应答头信息
服务器会随同应答向用户发送关于他自己的数据以及被氢气的文档
6.Web服务器向浏览器发送数据
Web服务器向浏览器发送头信息后,它会发送一个空白行来表示头信息的发送到此为结束,接着,它就以Content-Type应答头信息所描述的格式发送用户所请求的实际数据。
7. Web服务器关闭TCP连接
一般情况下,一旦Web服务器向浏览器发送了请求数据,它就要关闭TCP连接,然后如果浏览器或者服务器在其头信息加入了这行代码:Connection:keep-alive
TCP连接在发送后将仍然保持打开状态,于是,浏览器可以继续通过相同的连接发送请求。保持连接节省了为每个请求建立新连接所需的时间,还节约了网络带宽。