第 9 天:HTTP 响应报文与状态码

上一节内容我们学习了请求报文 第 8 天:弄懂 HTTP 请求报文,这节内容我们一起学习响应报文。请求是 UA(User Agent)的事情,它的目的是告诉服务端,我要哪些资源,你给我以某种方式把资源返回。服务端在返回资源的时候,需要按照 HTTP 协议规定的方式返回。这就使得响应报文也有自己的独有的格式。一图胜前言:

响应报文由三部分组成:

1.状态行(status line):

语法:HTTP版本 空格 状态码 空格 原因短语

这里主要说一下状态码,下面这些状态码由HTTP协议提供,它告诉客户端服务端处理请求时的状态。总共有 5 大类状态码:

1xx: Informational - Request received, continuing process,表示服务端已经接收到请求正在处理中;

2xx: Success - The action was successfully received, understood, and accepted,表示服务端明白了客户端要干什么,也可以做出正确的响应;

3xx: Redirection - Further action must be taken in order to complete the request,重定向,我处理不了你的请求,我需要把它交给其它小伙伴处理;

4xx: Client Error - The request contains bad syntax or cannot be fulfilled,客户端错误,服务端理解不了请求对象,要么是地址写错了,要么是不符合规则;

5xx: Server Error - The server failed to fulfill an apparently valid request,服务端错误,这个时候你可以找服务端小伙伴说:“你的服务挂了”。

下面是所有的状态码汇总,来源于 RFC2616,这些状态码也没必要死记,只要记住每一大类的意思就行,比如出现了 4开头的错误,先找客户端是不是哪里写错了。5开头的,那就让服务端修改吧。:

"100" : Continue

"101" : Switching Protocols

"200" : OK

"201" : Created

"202" : Accepted

"203" : Non-Authoritative Information

"204" : No Content

"205" : Reset Content

"206" : Partial Content

"300": Multiple Choices

"301" : Moved Permanently

"302": Found

"303" : See Other

"304" : Not Modified

"305" : Use Proxy

"307" : Temporary Redirect

"400" : Bad Request

"401" : Unauthorized

"402" : Payment Required

"403" : Forbidden

"404": Not Found

"405" : Method Not Allowed

"406" : Not Acceptable

"407" : Proxy Authentication Required

"408" : Request Time-out

"409" : Conflict

"410" : Gone

"411"  : Length Required

"412"  : Precondition Failed

"413"  : Request Entity Too Large

"414" : Request-URI Too Large

"415"  : Unsupported Media Type

"416" : Requested range not satisfiable

"417" : Expectation Failed

"500"  : Internal Server Error

"501"  : Not Implemented

"502"  : Bad Gateway

"503"  : Service Unavailable

"504"  : Gateway Time-out

"505"  : HTTP Version not supported

2.响应头(response header):

这部分和请求头一样 第 8 天:弄懂 HTTP 请求报文,不过它使用的是响应头。CRLF 可以理解为换行。

Status-Line
*(( general-header
| response-header
| entity-header ) CRLF)
CRLF

[ message-body ]

响应头:

Accept-Ranges 

Age           

ETag          

Location      

Proxy-Authenticate

Retry-After       

Server            

Vary

WWW-Authenticate 

3.响应体(body):

这部分内容客户端是比较关心的,它主要通过这些数据来做一些业务处理。

总结

响应报文和请求报文类似,它主要的作用是把客户端需要的资源返给客户端,如果有错误,需要给客户端一个合理的状态码。关于具体某个字段是什么意思,等用到的时候查询资料即可,没必要浪费太多的时间在这里。这些内容比较基础,但是对我们要实现一个 HTTP server 有非常大的帮助。大家加油!

今天打卡指令:

1. 实现一个 HTTP server 的思路是什么,需要做哪些事情?

2.直接打卡。


推荐阅读:

第 8 天:弄懂 HTTP 请求报文

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值