HTTP是什么?
超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。所有的WWW文件都必须遵守这个标准。设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法。什么是HTTP请求? 指的是从客户端到服务器端的请求消息。
HTTP通信机制是在一次完整的HTTP通信过程中,Web浏览器与Web服务器之间将完成下列几个步骤:
(1)建立TCP连接:
Web浏览器与Web服务器之间要相互通讯首先要通过网络建立连接(三次握手),该链接是通过TCP来完成的,一般TCP连接的端口为80.
(2)浏览器向服务器端发送请求报文:
TCP连接建立完成后,浏览器会向服务器发送请求报文,服务器接收后会对该报文进行解析。
(3)Web服务器向浏览器发送应答信息:
服务器会发送应答状态码,并且会给浏览器发送请求的实际数据信息;
(4)服务器关闭连接
一般情况下,一旦Web服务器向浏览器发送了请求数据,它就要关闭TCP连接(此时该连接属于一个短连接)
如果浏览器或者服务器在其头信息加入了这行代码
Connection:keep-alive
TCP连接在发送后将仍然保持打开状态,于是,浏览器可以继续通过相同的连接发送请求(此时属于长连接)。
长连接相对于短连接的好处是保持连接节省了为每个请求建立新连接所需的时间,还节约了网络带宽。
HTTP请求方法:
HTTP状态码以及含义:
&& 举一个简单地例子:在浏览器中输入www.baidu.com敲回车后发生了什么?
(1)输入www.baidu.com网址后,DNS域名解析,得到具体的ip地址,端口号为80(TCP连接端口号默认为80)。
(2)浏览器与服务器经过三次握手建立TCP连接;
(3)浏览器端发送http请求报文;
(4)服务器收到请求报文后进行解析,之后发送http应答报文给浏览器并且发送实际的数据给浏览器(百度的搜索页面);
(5)发送完成后,浏览器显示百度页面,服务器端等待浏览器端的具体操作;