1. HTTP请求方法
HTTP 请求方法定义了客户端和服务器之间的通信方式。
根据 HTTP 标准,HTTP 请求可以使用多种请求方法:
- GET:用来请求访问已被 URI 识别的资源。指定的资源经服务器 端解析后返回响应内容。
- POST:POST 方法用来传输实体的主体,虽然用 GET 方法也可以传输实体的主体,但一般不用 GET 方法进行传输,而是用 POST 方法。虽说 POST 的功能与 GET 很相似,但 POST 的主要目的并不是获取响应的主体内容。
- PUT:用来传输文件。但是,鉴于 HTTP/1.1 的 PUT 方法自身不带验证机制,任何人都可以上传文件 , 存在安全性问题,因此一般的 Web 网站不使用该方法。若架构设计采用 REST(REpresentational State Transfer,表征状态转移)标准的同类 Web 网站,就可能会开放使用 PUT 方法。
- HEAD:HEAD 方法和 GET 方法一样,只是不返回报文主体部分。用于确认 URI 的有效性及资源更新的日期时间等。
- DELETE:DELETE 方法用来删除文件。但是,HTTP/1.1 的 DELETE 方法本身和 PUT 方法一样不带验证机制,所以一般的 Web 网站也不使用 DELETE 方法。当配合 Web 应用 程序的验证机制,或遵守 REST 标准时还是有可能会开放使用的。
- OPTIONS:用来查询针对请求 URI 指定的资源支持的方法。
- CONNECT:要求在与代理服务器通信时建立隧道,实现用隧道协 议进行 TCP 通信。主要使用 SSL(Secure Sockets Layer,安全套接层)和 TLS(Transport Layer Security,传输层安全)协议把通信内容加密后经网络隧道传输。
2. GET和POST的区别
- GET请求一般是去获取数据,POST请求一般是提交数据。
- GET请求的参数放在URI中,所以隐私性,安全性较差,请求的数据长度是有限制的;POST请求是没有长度限制的,请求数据是放在body中的。
- GET请求刷新服务器或者回退没有影响;POST请求回退时会重新提交数据请求。
- GET请求可以被缓存,POST请求不会被缓存。
- GET请求只能进行URL编码(appliacation-x-www-form-urlencoded);POST请求支持多种编码(multipart/form-data等)。
- GET请求可以被保存在浏览器的历史记录中;POST请求不会。
- 通常GET产生一个TCP数据包;POST产生两个TCP数据包(但firefox发送一个)。
- GET请求,浏览器会把 http deader 和 data 一并发送出去,服务器响应 200 表示成功;POST请求,浏览器会先发送 http header,服务器响应 100,浏览器再继续发送data,服务器响应 200 ,表示成功。