1.http请求报文
首先说http请求的报文是什么样的,http报文包括请求行、请求头、请求体(请求正文)。
请求体是可选的,像get请求就没有请求体,post请求有请求体。
请求行:请求方法+请求url和http版本,
🌰:
GET /search?hl=zh-CN&source=hp&q=domety&aq=f&oq= HTTP/1.1
POST /search HTTP/1.1
所以get请求和post请求报文的第一个不同就是请求行里的请求方法不同,同时get请求把请求内容直接写在了url后面,用&分隔。
请求头:请求头包括了服务器或客户端需要处理的请求或响应的内容以及属性。
请求头一行一对,一个名对应一个值,包括的信息有:
Host 接受请求的服务器地址,可以是IP:端口号,也可以是域名
User-Agent 发送请求的应用程序名称
Connection 指定与连接相关的属性,如Connection:Keep-Alive
Accept-Charset 通知服务端可以发送的编码格式
Accept-Encoding 通知服务端可以发送的数据压缩格式
Accept-Language 通知服务端可以发送的语言
⚠️:请求头部的最后会有一个空行,表示请求头部结束,接下来为请求正文,这一行非常重要,必不可少。
get请求和post请求的第二个区别,也是最重要的一个就是get请求就没有请求体,post请求有请求体。
post请求在请求体里写了发送的内容hl=zh-CN&source=hp&q=demote
2.http响应报文
http响应报文主要也分为三个组成部分:状态行+响应头(消息报头)+响应体(响应正文)。
状态行:http协议版本+状态码+状态代码的文本描述
状态码一般是三个数字组成,第一个数字代表了响应的类别。
1XX:指示信息,表示请求已接受,继续处理。
2XX:成功,表示请求已经被成功接受,理解和处理。
3XX:重定向,要完成请求必须进行更进一步的操作。
4XX:客户端错误--请求有语法错误或请求无法实现。
5XX:服务器端错误--服务器未能实现合法的请求。
⚠️:常见的状态代码及其含义:
200:请求成功。
400:客户端请求有错误,不能被服务器所理解。
404 (未找到) 服务器找不到请求的网页。
408 (请求超时) 服务器等候请求时发生超时。
304:自上次请求以来,请求的内容没有发生改变。
网友评论