HTTP报文

HTTP报文是在HTTP应用程序之间发送的数据块。
HTTP报文是简单的格式化数据块。分为请求报文和响应报文。每条报文都包含一条来自客户端的请求,或者一条来自服务器的响应。它们由三个部分组成:对报文进行描述的起始行、包含属性的首部块,以及可选的、包含数据的主体。
这里写图片描述
可以用抓包工具来查看报文。

请求报文

这里写图片描述
SP代表空格,CRLF代表回车换行
这里写图片描述

<method> <request-URL> <version>
<headers>

<entity-body>

方法(method)

客户端希望服务器对资源执行的动作。是一个单独的词,比如GET、HEAD或POST。
这里写图片描述

请求URL(request-URL)

命名了所请求的资源

版本(version)

报文所使用的HTTP版本

HTTP/<major>.<minor>

其中主要版本号和次要版本号都是整数。

响应报文

这里写图片描述
这里写图片描述

<version> <status> <reason-phrase>
<headers>

<entity-body>

状态码(status-code)

这三位数字描述了请求过程中所发生的情况。每个状态码的第一位数字都用于描述状态的一般类别(“成功”、“出错”等)
浏览器向服务器发出请求,服务器处理可能是成功、可能是失败、可能没有权限访问等原因,服务器会通过响应码来告诉浏览器处理结果。
“200” : OK
“302” : Found 重定向.
“400” : Bad Request 错误请求,发出错误的不符合Http协议的请求
“403” : Forbidden 禁止
“404” : Not Found 未找到。演示访问一个不存在的页面看报文
“500” : Internal Server Error 服务器内部错误。演示页面抛出异常。
“503” : Service Unavailable。一般是访问人数过多。
200段是成功;300段需要对请求做进一步的处理;400段表示客户端请求错误;500段是服务器的错误。

原因短语(reason-phrase)

数字状态的可读版本。原因短语只对人类有意义,比如说,尽管响应行HTTP/1.0 200 NOT OK和HTTP/1.0 200 OK中原因短语的含义不同,但同样都会被当成成功指示处理。

首部

首部和方法配合工作,共同决定了客户端和服务器能做什么事情。
一些常见的首部
Accept:客户端用这个首部来告诉服务器可以接受那些媒体类型。
Accept-Encoding:
客户端用这个首部来告诉服务器可以接受哪些编码方式。
Accept-Language:客户端用这个首部来告诉服务器可接受或优选哪些语言。
Connection:值为close的时候,代表响应结束之后连接会被关闭。值为keep-alive的时候,代表连接在发送后仍然保持打开状态。
Content-Encoding:可以告诉客户端,服务器对对象执行过哪些类型的编码。有了这个信息,客户端就可以对报文进行解码了。
Content-Length:说明实体主体部分的长度或尺寸。
Content-Type:说明了报文中对象的媒体类型。
Cookie:用于客户端识别和跟踪的扩展首部。
Date:给出了报文创建的日期和时间。
Expires:给出了响应失效的日期和时间。
Host:提供客户端想要访问的那台机器的因特网主机名和端口号。
Referer:在客户端请求中插入这个首部,可以使服务器知道客户端是从哪里获得其请求的URL。
Server:它为服务器提供了一种向客户端标识自己的方式。它的值就是服务器名字和一个可选的服务器注释。
User-Agent:用来标识客户端,它的值就是应用程序的名称。

评论 18
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值