报文的组成部分
Http报文是简单的格式化数据块,每条报文都包含一条来自客户端的请求,或者一条来自服务器的响应。它们由三个部分组成:对报文进行描述的起始行(start line), 包含属性的首部(header)块,以及可选的、包含数据的主体(body)部分。
起始行: HTTP/1.0 200 OK 包含协议、版本号、 状态码、 提示语
首部:Content-type: text/plain;
主体: Hi!I am a message!
所有的HTTP报文都可以分为两类:请求报文(request message)和响应报文(response message)。请求报文的起始行语法与响应报文的起始行有所不同
状态码
状态码是在每条响应报文的起始行中返回的。会返回一个数字状态和一个可读的状态。数字码便于程序进行差错处理,而原因短语则更便于人们理解。
可以通过三位数字代码对不同状态码进行分类。 200~299之间的代码表示成功。300~399之间的代码表示资源已经被移走了。400~499之间的代码表示客户端的请求出错了。500~599之间的代码表示服务器出错了。
首部
通用首部
Connection 允许客户端和服务器指定与请求/响应连接有关的选项
Date: Tue,3 Oct 2023 20:15:00 GMT 说明构建报文的时间和日期
Cache-Control 用于随报文传送缓存指示
Pragma 另一种随报文传送指示的方式,但并不专用于缓存
请求首部
比如 :
Accept: */* 表示告知服务器客户端会接受与其请求相符的任意媒体类型
Accept-Charset :告诉服务器能够发送哪些字符集
Accept-Encoding: 告诉服务器能够发送哪些编码
Referer: 提供了包含当前请求URI的文档URL
Host: 提供了接收请求的服务器的主机名和端口号
Authorization:包含了客户端提供给服务器,以便对其自身进行认证的数据
Cookie: 客户端用它向服务器传送一个令牌-它并不是真正的安全首部,但确实隐含了安全功能
Proxy-Connection:与Connection首部相同,但这个首部是在与代理建立连接时使用的
Proxy-Authorization:与Authorization首部相同,但这个首部是在与代理进行认证时使用的
响应首部
Server: Tiki-Hut/1.0
实体首部
Content-Type:text/html;charset=UTF-8