ThinkChat🤖让你学习和工作更高效,注册即送10W Token,即刻开启你的AI之旅 广告
[TOC] ## 请求报文 ![](https://img.kancloud.cn/4e/94/4e943538671042b827dd283b9175abfd_583x224.png) ![](https://img.kancloud.cn/2a/83/2a83f6c22d73f549a48cf11aab9ad185_897x529.png) ### 请求行 {请求方法} + {URL字段} + {HTTP协议版本} 们用空格分隔。 例如,GET /index.html HTTP/1.1。 HTTP协议的请求方法有GET、POST、HEAD、PUT、DELETE、OPTIONS、TRACE、CONNECT。 ### 请求头部 由关键字/值对组成,每行一对,关键字和值用英文冒号“:”分隔。请求头部通知服务器有关于客户端请求的信息,典型的请求头有: User-Agent:产生请求的浏览器类型。 Accept:客户端可识别的内容类型列表。 Host:请求的主机名,允许多个域名同处一个IP地址,即虚拟主机。 请求头说明Host接受请求的服务器地址,可以是IP:端口号,也可以是域名User-Agent发送请求的应用程序名称Connection指定与连接相关的属性,如Connection:Keep-AliveAccept-Charset通知服务端可以发送的编码格式Accept-Encoding通知服务端可以发送的数据压缩格式Accept-Language通知服务端可以发送的语言 ### 请求数据 请求数据不在GET方法中使用,而是在POST方法中使用。POST方法适用于需要客户填写表单的场合。与请求数据相关的最常使用的请求头是Content-Type和Content-Length ## 响应报文 ![](https://img.kancloud.cn/44/2c/442c7e6839a7a49ec108c38989d83ccf_553x364.png) ![](https://img.kancloud.cn/87/32/8732a0e683d412fdf31ab1a5385f6a7a_629x295.png) ### 状态行 HTTP-Version Status-Code Reason-Phrase CRLF 其中,HTTP-Version表示服务器HTTP协议的版本;Status-Code表示服务器发回的响应状态代码;Reason-Phrase表示状态代码的文本描述。状态代码由三位数字组成,第一个数字定义了响应的类别,且有五种可能取值。 * 1xx:指示信息--表示请求已接收,继续处理。 * 2xx:成功--表示请求已被成功接收、理解、接受。 * 3xx:重定向--要完成请求必须进行更进一步的操作。 * 4xx:客户端错误--请求有语法错误或请求无法实现。 * 5xx:服务器端错误--服务器未能实现合法的请求。 常见状态代码、状态描述的说明如下。 * 200 OK:客户端请求成功。 * 400 Bad Request:客户端请求有语法错误,不能被服务器所理解。 * 401 Unauthorized:请求未经授权,这个状态代码必须和WWW-Authenticate报头域一起使用。 * 403 Forbidden:服务器收到请求,但是拒绝提供服务。 * 404 Not Found:请求资源不存在,举个例子:输入了错误的URL。 * 500 Internal Server Error:服务器发生不可预期的错误。 * 503 Server Unavailable:服务器当前不能处理客户端的请求,一段时间后可能恢复正常,举个例子:HTTP/1.1 200 OK(CRLF)。 ### 响应头部 与请求头部类似,为响应报文添加了一些附加信息 响应头说明Server服务器应用程序软件的名称和版本Content-Type响应正文的类型(是图片还是二进制字符串)Content-Length响应正文长度Content-Charset响应正文使用的编码Content-Encoding响应正文使用的数据压缩格式Content-Language响应正文使用的语言 ## 参考资料 [http题目](https://blog.csdn.net/yicixing7/article/details/79320821) [结构明细](https://www.cnblogs.com/ldq2016/p/9055933.html)