HTTP即 超文本传输协议 - HyperText Transfer Protocol
作为互联网应用最普遍的网络协议,所有的WWW文件都必须准守的网络标准,应该是每一位新手程序员都需要了解的基础知识。
HTTP标准是应用于客户端和服务器端请求与应答活动的标准。
我们作为终端用户在使用浏览器浏览网站时是以客户端的身份向网站服务器端发送浏览请求,一般情况下,当HTTP客户端发起请求,将建立一个到服务器上指定的端口(默认端口代号为“80”)的连接请求,服务器端在收到客户端请求后立即响应并将状态行消息发送回客户端。
一、HTTP请求
请求格式
浏览器向服务器发送一个合法的HTTP请求应该遵循协议规定的格式。
HTTP请求信息由4部分组成:
(1)请求方法、URI、协议/版本,例如:GET/sample.jsp HTTP/1.1
(2)请求头(Request Header),请求头可以声明浏览器所用的语言,请求正文的长度等许多有关客户端环境的信息。例如:
Host: http://www.baidu.com (主机地址)
User-Agent: curl/7.54.0 (产生请求的浏览器类型。)
Accept: */* (客户端可识别的内容类型列表。)
Content-Length: 10
Content-Type: application/x-www-form-urlencoded
(3)空行
在请求头和请求正文之间存在一个必须的空号(/n),空行表示请求头已结束,接下来的是请求正文。
(4)请求正文
请求正文中可以包含客户提交的查询字符串信息,也可以为空。
通过浏览器查看HTTP请求
我们以Chrome浏览器为例:
首先右键点击检查,打开 Network
然后地址栏输入网址
在 Network 点击,查看 request,点击「view source」即可查看请求的前三部分了
如果有请求内容的第四部分(POST),那么在 FormData 或 Payload 里面可以看到
备注:如果需要查看登录时的请求信息,先勾选Preserve log
二、HTTP响应
HTTP响应由4部分组成:状态行、响应头部、空行以及响应正文。
(1) 状态行
由3部分组成,分别为:协议版本,状态码,状态码描述。
其中协议版本与请求报文一致,状态码描述是对状态码的简单描述。
状态代码为3位数字。
1xx:指示信息--表示请求已接收,继续处理。
2xx:成功--表示请求已被成功接收、理解、接受。
3xx:重定向--要完成请求必须进行更进一步的操作。
4xx:客户端错误--请求有语法错误或请求无法实现。
5xx:服务器端错误--服务器未能实现合法的请求。
(2) 响应头部
与请求头部相似,为响应报文提供一部分附加信息,如
server服务器应用程序的名称和版本
Content-Length 正文长度
Content-Type 正文类型
(3) 空行
在响应头和响应正文之间存在一个必须的空号(/n),空行表示响应头已结束,接下来的是响应正文。
(4) 响应正文
响应正文存放需要返回给客户端的数据信息。
通过浏览器查看HTTP响应
同样以Chrome浏览器为例:
首先右键点击检查,打开 Network
然后地址栏输入网址
点击响应结果,查看 Response Headers,点击「view source」即可查看状态行和响应头部
点击 Response 或者 Preview,即可查看响应的响应正文