HTTP 方法
2017-07-02 本文已影响8人
zlb
GET 获取资源
GET方法用来请求访问一杯URI识别的资源。指定的资源经服务器端解析后返回响应的内容。也就是说,如果请求 都是资源文本,那就保持原样返回
POST 传输实体主体
POST方法用来传输实体的主体
虽然GET方法也可以传输实体的主体,但一般不用GET方法进行传输,而是用POST方法进行传输 POST主要用来表单提交
PUT 传输文件
PUT 方法用来传输文件,就像FTP协议的文件上传一样,要求在请求的报文主体中包含文件的内容,然后保存到请求URI指定的位置
但是,鉴于HTTP/1.1 的PUT 方法自身不带验证机制任何人都可以上传文件,存在安全性。因此一般的web网站不用该方法
HEAD 获得报文首部
HEAD 方法和GET方法一样,只是不返回报文的主题部分,用于确定URI资源的有效性和资源更新的日期时间等
DELETE 删除文件
DELETE 用来删除文件 是和PUT相反的方法 DELETE 按请求的URI删除指定的资源。
DELETE 方法自身不带验证机制,存在安全性。因此一般的web网站不用该方法
OPTIONS 询问支持的方法
OPTIONS 用来查询针对请求URI指定资源支持的方法
TRACE 追踪路径
TRACE 方法是让web服务器端将之前的请求通信环回给客户端的方法,
TRACE 方法本来就不怎么常用,再加上它容易引发跨站追踪攻击,通常就更不会用到了
CONNECT 要求用隧道协议连接代理
CONNECT 方法要求在与代理服务器通信时建立隧道,实现用隧道协议进行TCP通信。主要使用SSL(安全套接层) 和 TLS(传输层安全) 把通信内容加密后经网络隧道传输
POST 和 GET 的主要区别
操 作 | GET | POST |
---|---|---|
后退按钮/刷新 | 无害 | 数据会被重新提交(浏览器应该告知用户数据会被重新提交) |
缓存 | 能被缓存 | 不能缓存 |
编码类型 | application/x-www-form-urlencoded | application/x-www-form-urlencoded 或 multipart/form-data。为二进制数据使用多重编码 |
历史 | 参数保留在浏览器历史中。 | 参数不会保存在浏览器历史中 |
对数据长度的限制 | 是的。当发送数据时,GET 方法向 URL 添加数据;URL 的长度是受限制的(URL 的最大长度是 2048 个字符) | 无限制 |
对数据类型的限制 | 只允许 ASCII 字符 | 没有限制。也允许二进制数据 |
安全性 | 与 POST 相比,GET 的安全性较差,因为所发送的数据是 URL 的一部分 | POST 比 GET 更安全,因为参数不会被保存在浏览器历史或 web 服务器日志中 |
可见性 | 数据在 URL 中对所有人都是可见的 | 数据不会显示在 URL 中 |