很多开发者天天和http打交道,却不知道http报文长什么样,它的结构是什么。是时候普及一下了。用于HTTP协议交互的信息称为HTTP报文,请求端(客户端)的HTTP报文称为请求报文;响应端(server端)称为响应消息,HTTP消息本身是由多行数据组成的字符串字面量。HTTP请求报文结构:HTTP报文大致可以分为四部分:请求行、请求头、空行、请求体。有人将报文分为请求头(请求行+请求头)、空行、请求体。通常,前几部分是必需的,最后的请求主体不是必需的。每个部分以一个空行作为结束标记结束。请求行:请求方法(Method)+空格+统一资源标识符(URI)+空格+HTTP版本+CRLF;请求头:字段名+冒号+值+CRLF;空行:回车(CR)+换行(LF);requestbody:用户自定义,如postbody等;请求头示例(GoogleChrome网络面板):HTTP响应消息结构:响应消息结构和请求消息结构的唯一区别在第一行,请求信息被状态信息代替。状态行通过提供状态代码来描述所请求的资源。状态行:HTTP版本+空格+状态码+空格+状态码说明+CRLF;响应头:字段名+冒号+值+CRLF;空行:回车(CR)+换行(LF);responseBody:用户添加的,如postbody等;Responseheader实例(GoogleChromeNetwork面板):Responsestatuscode:状态码是服务器为了响应客户端对服务器的请求而发送的。1xx(信息):请求已收到,继续处理2xx(成功):请求已成功接收、理解和接受3xx(重定向):需要进一步操作才能完成请求4xx(客户端错误):请求包含错误语法或无法满足5xx(服务器错误):服务器无法满足明显有效的请求状态代码。详情请参考:https://en.wikipedia.org/wiki...这篇文章到这里应该就结束了,但是程序员们还是要严谨的学习,按照本书的《图解Http》,HTTP请求中的字段header可以细分为通用头域、实体头域和请求头域。同样,HTTP响应报文头中的字段也可以细分为通用头字段、实体头字段、响应头字段谷歌浏览器的Newwork面板只会将通用头字段分开,其余字段会分为两部分根据请求头字段和响应头字段分类,不会再细分。附上字段分类详情,如果图片看不清楚,可以点击这里:https://www.processon.com/vie...<完>
