一.HTTP请求方法
根据HTTP标准,HTTP请求可以使用多种方法。
HTTP1.0定义了三种请求方法:GET,POST,HEAD方法。
HTTP1.1新增了六种请求方法:OPTIONS,PUT,PATCH,DELETE,TRACE,CONNECT方法。
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上