一次完整的http事务

​https://www.processon.com/view/link/56c6679ce4b0f0c4285e69c0​

 

一次完整的http事务_服务器

 

规范把 HTTP 请求分为三个部分:状态行、请求头、消息主体。类似于下面这样:



<method> <request-url> <version>
<headers>
<entity-body></entity-body></headers></version></request-url></method>


 

方法有: 

      GET: 请求指定的页面信息,并返回实体主体。 

  HEAD: 只请求页面的首部。 

  POST: 请求服务器接受所指定的文档作为对所标识的URI的新的从属实体。 (只读)

  PUT: 从客户端向服务器传送的数据取代指定的文档的内容。 (写)

  DELETE: 请求服务器删除指定的页面。 

  OPTIONS: 允许客户端查看服务器的性能。 

  TRACE: 请求服务器在响应中的实体主体部分返回所得到的内容。 (一般禁用,有TRACE攻击)

  PATCH: 实体中包含一个表,表中说明与该URI所表示的原内容的区别。 

  MOVE: 请求服务器将指定的页面移至另一个网络地址。 

  COPY: 请求服务器将指定的页面拷贝至另一个网络地址。 

  LINK: 请求服务器建立链接关系。 

  UNLINK: 断开链接关系。 

  WRAPPED: 允许客户端发送经过封装的请求。 

  Extension-mothed:在不改动协议的前提下,可增加另外的方法。 

      CONNECT:通过服务器代理转发

 

协议规定 POST 提交的数据必须放在消息主体(entity-body)中,但协议并没有规定数据必须使用什么编码方式。实际上,开发者完全可以自己决定消息主体的格式,只要最后发送的 HTTP 请求满足上面的格式就可以。

比如这样:



POST http://www.example.com HTTP/1.1
Content-Type: application/x-www-form-urlencoded;charset=utf-8
title=test&sub%5B%5D=1&sub%5B%5D=2&sub%5B%5D=3


Content-Type可以有:

application/x-www-form-urlencoded

multipart/form-data

application/json

text/xml

等。