HTTP协议之请求

时间:2022-12-14 11:23:19

HTTP请求

组成

一个http请求通常由三个部分组成:

  • 请求行(request line)
  • 首部(header)
  • 主体(body)

格式如下所示

<request-line><CR><LF>
<headers><CR><LF>
<CR><LF> //报头部分已结束,下面是主体部分
[<request-body>]

要注意的是在headers与body之间有一个空行

请求方法

  • GET 请求获取Request-URI所标识的资源
  • POST 在Request-URI所标识的资源后附加新的数据
  • HEAD 请求获取由Request-URI所标识的资源的响应消息报头
  • PUT 请求服务器存储一个资源,并用Request-URI作为其标识
  • DELETE 请求服务器删除Request-URI所标识的资源
  • TRACE 请求服务器回送收到的请求信息,主要用于测试或诊断
  • CONNECT 保留将来使用
  • OPTIONS 请求查询服务器的性能,或者查询与资源相关的选项和需求

这里只对最常见的GET和POST作介绍:

GET

GET用于信息获取,而且应该是安全的和幂等的。

特点

  • GET请求的数据会附在URL之后(就是把数据放置在HTTP协议头中),以?分割URL和传输数据,参数之间以&相连,如:login.action?name=hyddd&password=idontknow&verify=%E4%BD%A0%E5%A5%BD。如果数据是英文字母/数字,原样发送,如果是空格,转换为+。对于中文和特殊字符,则转换为%(其十六进制的ASCII码)。
  • GET方式提交的数据最多只能是1024字节

POST

POST表示可能修改变服务器上的资源的请求。

特点

  • POST把提交的数据则放置在HTTP包的包体中,即上文的<request body>
  • POST方式提交的数据理论上没有限制

参考:
http://blog.csdn.net/kfanning/article/details/6062118/
http://www.cnblogs.com/li0803/archive/2008/11/03/1324746.html
http://www.cnblogs.com/hyddd/archive/2009/03/31/1426026.html