《图解HTTP》学习笔记之(二)

本文主要记录HTTP报文内的HTTP信息返回结果的HTTP状态码

1. HTTP报文
用于HTTP协议交互的信息称为HTTP报文。分为请求报文(客户端)和响应报文(服务器端)。
报文分为报文首部和报文主体。按照首次出现的空行来划分首部和主体,报文可以没有主体。

2. 报文结构
请求报文-报文首部由:
请求行
请求首部字段
通用首部字段
实体首部字段
其他
组成,响应报文-报文首部第一行为状态行,其余结构和请求报文一样。
举个例子:

//请求行
Get /HTTP/1.1    
--------------------
//各种首部字段
Host:hackr.jp
User-Agent: Mozilla/9.0(Windwos 10;WOW:64) Gecko/20161215 Firefox.15.0.1
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: ja,en-US;q=0.7,en;q=0.3
Accept-Encoding: gzip, defalate
DNT: 1
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache
//空行+报文主体

再举个响应报文的例子:

//状态行
HTTP/1.1 200 OK
--------------------
//各种首部字段
Date: Fri, 16 Dec 2016 14:42:50 GMT
Server: Apache
Last-Modified: Fri, 9 Dec 2016 14:42:50 GMT
ETag: "45beael-16a-46d776ac
Accept-Ranges: bytes
Content-Length: 382
Connection: close
Content-Type: text/html
//空行+报文主体

报文首部的结构如上,
请求行:包含用于请求的方法(Get,Post),HTTP版本和请求URI
状态行:包含HTTP版本,表明响应结果的状态码和原因短语。
首部字段:包含请求和响应的各种条件和属性的各类首部。
里面具体每一首部字段的含义后续在详细解释。

3. 编码提升传输效率
为提高传输速率,HTTP提供在传输时编码服务,这样能有效的处理大量的访问请求。
a. 压缩传输的内容编码 主要有四种方式:
gzip (GNU zip)
compress (UNIX 系统的标准压缩)
deflate(zlib)
identity(不进行编码)
b. 分割发送的分块传输编码
在传输大容量数据时,通过把数据分割成多块。

此外,HTTP还提供,发送多种数据的多部分对象集合,获取部分内容的范围请求,内容协商返回最合适的内容。接下里说一下

返回结果的HTTP状态码

1XX: Informational(信息性状态码) 接受的请求正在处理
2XX:Success(成功状态码) 请求正常处理完毕
3XX:Redirection(重定向状态码) 需要进行附加操作以完成请求
4XX:Client Error(客户端错误状态码) 服务器无法处理请求
5XX: Server Error(服务器错误状态码)服务器处理请求出错

下面具体解释经常使用和具有代表性的14个状态码:
200 :OK, 表示从客户端发来的请求在服务器端被正常处理了。
204: No Content ,表示服务器接收的请求成功处理了,但在返回的响应报文中不含实体的主体部分。(一般在只需要从客户端往服务器端发送消息,而服务器端不需要返回新信息内容的情况下使用)。
206: Partial Content, 表示客户端进行了范围请求,而服务器成功执行了这部分的GET请求。
301: Moved Permanently 永久性重定向,表示请求的资源已被分配了新的URI,以后应使用资源现状所指的URI。
302: Found 临时性重定向,表示请求的资源已被分配了新的URI,希望用户(本次)使用新的URI访问。
303: See Other ,表示由于请求对应的资源存在着另一个URI,应使用Get方法定向获取请求的资源。
304: Not Modified,表示客户端发送附带条件的请求时,服务端允许请求访问资源,但未满足条件的情况。304和重定向没有关系。
307: Temporary Redirect 临时重定向,与302有相同含义,但307会遵照浏览器标准,不会从POST变成GET。
400: Bad Request,表示请求报文中存在语法错误。
401: Unauthorized,表示发送的请求需要有通过HTTP认证的认证信息。
403: Forbidden,表示对请求资源的访问被服务器拒接了。
404: Not Found,表示服务器上无法找到请求的资源。
500: Internal Server Error,表示服务器端在执行请求时发生了错误,也有可能是Web应用存在的bug或某些临时的故障。
503:Service Unavailable,表示服务器暂时处于超负载或在进行停机维修,现在无法处理请求。

如有错误,多多指教~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值