http报文结构

 

一、请求行报文结构

http请求报文由三部分组成: 请求行、请求头 、请求正文。请求行、每个请求头与请求正文都由CRLF(回车换行,也即\r\n)分割开来,首行为请求行,余下的为请求头和请求正文,而请求正文有可能会为空,也可能包含CRLF情况,因此不能通过一个CRLF与请求头区别开来,所以采用两个CRLF来间隔请求头和请求正文

1.请求行

请求行的格式为:Method Request-URI HTTP-version CRLF

method为大写,有以下几种:GET、POST、HEAD、OPTIONS、PUT、DELETE、TRACE、CONNECT。但是实际使用中一般使用GET和POST就可以任何需求了,其他的被设计出来主要是让人从语义来直观看出该怎么处理数据,但是即使使用了DELETE方法,具体的删除还是得我们自己来实现。

Request-URI是一个统一资源标识符

HTTP-version为请求的HTTP的协议版本

GET请求示例GET /form.html HTTP/1.1 (CRLF)

POST请求示例POST /reg.jsp HTTP/1.1 (CRLF)
Accept:image/gif,image/x-xbit,... (CRLF)

2.请求头

请求头的格式为键值对。一般常见的请求头如下:

User-Agent:PostmanRuntime/7.26.8     表示产生请求的客户端程序

Accept:*/*     表示可接受的响应的类型为全部类型

Accept-Language:zh     表示可接受的响应的语言为中文

Accept-Encoding:gzip     表示客户端请求的压缩方式

Cookie:value     值由登陆之后服务端下发

token:value     值由登陆之后服务端下发

3.请求正文

 

二、HTTP响应报文

HTTP的相应也是由三部分组成:状态行、响应头、响应正文

状态行的组成为HTTP-version Status-code Reason-phrase CRLF

HTTP-version 为HTTP的版本,Status-code为响应状态码,Reason-phrase表示状态码的文本描述

状态码由三个数字组成,第一个数字表示响应类别,有以下类别

1xx:指示消息--表示请求已接收,继续处理

2xx:成功--表示消息已经成功接收、理解、接受

3xx:重定向--要完成请求必须进行进一步操作

4xx:客户端错误--请求语法有错误或者请求无法实现

5xx:服务器错误--服务器未能实现合法的请求

常见的状态码和状态描述:

100 continue 上传大文件前使用

101 switch protocols 升级协议使用

102 processing 服务正在处理

200 ok  请求成功

301 moved permanently 请求永久重定向

302 moved temporarily 请求临时重定向

304 not modified 文件未修改,可以直接使用缓存文件

400 bad raquest 客户端有语法错误,不能被服务器理解

401 unauthorized  请求未经授权,这个状态码必须和报头域WWW-Authenticate一起使用

403 forbidden 服务器收到请求,但是拒绝提供服务

404 not found  请求资源不存在,比如输入了错误的url

500 internal server error  服务器发生不可预期的错误

503 server unavailable  服务器当前不能处理客户端请求,一段时间后可能恢复正常

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值