一.HTTP请求方法

  根据HTTP标准,HTTP请求可以使用多种方法。

  HTTP1.0定义了三种请求方法:GETPOSTHEAD方法。

  HTTP1.1新增了六种请求方法:OPTIONSPUTPATCHDELETETRACECONNECT方法。

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

2.HEAD:类似于GET请求,只不过返回的响应中没有具体的内容,用于获取报头。

3.POST:向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST请求可能会导致新的资源的建立或已有资源的修改。

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

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

6.CONNECT:HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器。

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

8.TRACE:回显服务器收到的请求,主要用于测试或诊断。

9.PATCH:是对PUT方法的补充,用来对已知资源进行局部更新。

 

二.GET和POST的区别

  1.GET提交,请求的数据会附在URL之后(就是把协议放在请求行中),以 ? 分割URL和传输数据,多个参数用 & 连接;例如:login.action?name=hyddd&password=idontknow&verify=%E4%BD%A0%E5%A5%BD。如果数据是英文/数字,原样发送,如果是空格,转换为+,如果是中文/其他字符,则直接把字符串用BASE64加密,得出如:%E4%BD%A0%E5%A5%BD,其中%XX中的XX为该符号以16进制表示的ASCII。

  POST提交:把提交的数据放置在HTTP的请求体中。

  因此,GET提交的数据会直接在地址栏中显示出来,而POST提交,地址栏不会改变。

  2.传输数据大小

    首先声明,HTTP协议没有对传输的数据大小进行限制,HTTP协议规范也没有对URL长度进行限制。而在实际开发中存在的限制主要有:

    GET:特定浏览器和服务器对URL长度有限制,例如IE对URL长度限制是2083字节(2K+35)。因此对于GET提交时,传输数据就会受到URL的限制。

    POST:由于不通过URL传值,理论上数据不受限制。但实际中各个web服务器会规定对POST提交数据大小进行限制,Apache,IIS6都有各自的配置。

  3.安全性

    POST的安全性要比GET的安全性高。比如:通过GET提交数据,用户名和密码将明文出现在URL上