http协议之--报文

最近一直在看《http权威指南》,对http也有了新的认识,觉得很有必要把学习的东西记录下来,以便日后查看。

声明:本文适合小白,大神请绕路、、、、

本篇主要说一下http的报文格式。

1.http报文分类:

分类 格式
请求报文

<method><request-url><version>

<headers>

<entity-body>

响应报文

<version><status><reason-phrase>

<headers>

<entity-body>

例如:

 

2.报文格式:

报文主要分为三个部分:起始行、首部、主体。都属于ASCII文本(美国信息交换标准代码)。

起始行:

  • 方法(method) 

       客户端希望服务器对资源的动作,比如GET、HEAD、POST、DELETE、PUT。

  • 请求URL(request-url)

       所请求的资源。如:http://www.baidu.com/

  • 版本(version)

       指报文所使用的HTTP协议版本。如:HTTP/1.0

  • 状态码(status)

        这三个数字描述了请求过程中所发生的状况。如:200 

  • 原因短语(reason-phrase)

       数字状态码的可读版本。如:ok

首部:

即起始行后面有零个或多个首部字段。

主体:

空行之后就是可选的主体。

注意:有些请求方法是没有主体的,比如上图的GET请求。

3.常用的HTTP方法:

方法 描述 是否包含主体
GET GET是最常用的方法,通常用于请求服务器上发送某个资源。
HEAD HEAD方法与GET方法行为类似,只不过在服务器响应时,HEAD方法只返回起始行及首部。
PUT 与GET方法从服务器获取资源相反,PUT方法会向服务器写入资源。故有些WEB服务器会要求密码登录。
POST POST方法起初是用来向服务器输入数据的。目前用来发送HTML表单。
TRACE TRACE是用来查看,当请求通过防火墙、网关、代理后变成了什么样的。可以用来看看报文是否被修改或是毁坏了。
OPTIONS

OPTIONS方法请求WEB服务器告知其支持的各种功能。

DELETE DELETE 方法就是请求服务器删除URL所指定的资源。

 以上都是基于HTTP/1.0版本的,其实还有一些是扩展方法。

 4.状态码分类:

整体范围 分类 常用状态码
100~199 信息提示
  • 100  Continue 说明收到了请求的初始部分,客户端应当继续发送请求的剩余部分。
  • 101  Switching Protocols 说明服务器正在根据客户端的指定,将协议切换成Update首部的所列协议。
200~299 成功
  • 200  OK 请求没问题。
  • 201  Created  请求已被接受,但服务器没有执行任何动作,不能保证服务器会完成这个动作。
300~399 重定向
  • 300  Multiple Choices 返回此码,表示服务器有多个HTML版本可用,客户端需要沟通解决。
  • 301  Moved Permanently 指所请求的文档在别的地方;文档新的URL会在定位响应头信息中给出。浏览器会自动连接到新的URL。
  • 302  Found 重定向,自动连接在定为响应头信息中给出的新URL。代表状态码302的常量是SC_MOVED_TEMPORARILY而不是SC_FOUND。
400~499 客户端错误
  • 400 Bad Request 告知客户端发送了一个错误的请求。
  • 403 Forbidden  资源不可用,服务器理解客户的请求,但拒绝处理它。
  • 404 Not Found  说明服务器无法找到所请求的URL。
  • 405 Method Not Allowed 提交方法的类型错误。
  • 406 NotAcceptable 指浏览器不接受所请求页面的 MIME 类型。
500~599 服务器错误
  • 502 Bad Gateway是指错误网关,无效网关;我们向服务器发送请求与服务器当前链接太多,导致服务器方面无法给予正常的响应,产生此类报错。
  • 504 Gateway Timeout 响应来自一个网关或代理,他们在等待另一服务器对其请求响应时超时了。

以上就是HTTP 报文所涉及的相关内容了。欢迎补充、

猜你喜欢

转载自blog.csdn.net/ahutdbx/article/details/82817550