HTTP协议
- POST和GET是HTTP协议中的两种发送请求的方法。
- HTTP全称为Hyper Text Transfer Protocol,中文翻译为超文本传输协议,目的是保证浏览器与服务器之间的通信。HTTP的工作方式是客户端与服务器之间的请求-应答协议。
- HTTP协议在现代网络通信中被广泛应用,在HTTP 1.0版本中有7种请求方式,在HTTP 1.1版本中有8种请求方式,而这些请求方式中最常用的就是GET和POST。
区别
GET | POST | |
---|---|---|
url可见性 | 参数url可见 | url参数不可见 |
数据传输上 | 通过拼接url进行传输 | Request body中 |
缓存性 | 可以缓存的 | 不可以缓存 |
后退按钮/刷新 | 不产生影响 | 会重新提交请求 |
传输数据的大小 | 受限于浏览器url大小,一般不超过32K | 1G |
对数据长度的限制 | URL的最大长度是2048个字符 | 无限制 |
书签 | 可被收藏为书签 | 不可收藏为书签 |
编码类型 | application/x-www-form-urlencoded | application/x-www-form-urlencoded 或 multipart/form-data。为二进制数据使用多重编码。 |
历史 | 参数保留在浏览器历史中 | 参数不会保存在浏览器历史中 |
对数据类型的限制 | 只允许ASCII字符 | 没有限制,也允许二进制数据 |
安全性 | GET的安全性较差,因为所发送的数据是URL的一部分。在发送密码或其他敏感信息时绝不要使用GET | POST比GET更安全,因为参数不会被保存在浏览器历史或者web服务器日志中。 |
其他 HTTP 请求方法
方法 | 描述 |
---|---|
HEAD | 与 GET 相同,但只返回 HTTP 报头,不返回文档主体。 |
PUT | 上传指定的 URI 表示。 |
DELETE | 删除指定资源。 |
OPTIONS | 返回服务器支持的 HTTP 方法。 |
CONNECT | 把请求连接转换到透明的 TCP/IP 通道。 |