在客户端与服务端之间进行通信时,有很多种客户端向服务端进行请求的方法,例如:GET、POST、PUT、HEAD、DELETE、PATCH、OPTIONS。其中最常用的是POST、GET方法。下面我们去了解并比较一下这两种请求方法。 ’
什么是HTTP
超文本传输协议(hypertext transfer protocol,缩写HTTP)旨在启用客户端和服务器之间的通信。充当着客户端-服务器之间的请求-响应协议。
POST方法
POST用于将数据发送到服务器来创建/更新资源。
通过POST发送到服务器的数据存储在HTTP请求的请求主体中。
POST /test/demo_form.php HTTP/1.1
Host: w3school.com.cn
name1=value1&name2=value2
有关POST请求需要注意的是:
1、POST请求不会被缓存
2、POST请求不会保留在浏览器历史记录当中
3、POST请求不能收藏为书签
4、POST请求对数据长度没有要求
GET方法
GET用于从指定资源请求数据
GET请求查询的字符串(名称/值对)是在GET请求的URL中发送的
/test/demo_form.php?name1=value1&name2=value2
有关GET请求需要注意的是:
1、GET请求会被缓存
2、GET请求会保留在浏览器历史记录当中
3、GET请求能收藏为书签
4、GET请求不应在处理敏感数据时使用
5、GET请求对数据长度有限制
6、GET请求只应当用于取回数据(不修改)
POST 与 GET 请求的区别
GET | POST | |
---|---|---|
后退/刷新 | 无害 | 数据会被重新提交(浏览器应该告知用户数据会被重新提交)。 |
书签 | 可以被收藏 | 不可以被是收藏 |
缓存 | 能被缓存 | 不能被缓存 |
编码类型 | application/x-www-form-urlencoded | application/x-www-form-urlencoded 或 multipart/form-data。为二进制数据使用多重编码。 |
历史记录 | 会被保存 | 不会被保存 |
数据长度 | 有限制,URL最长2048个字符 | 无限制 |
数据类型 | 只允许ASCII字符 | 无限制,可为二进制数据 |
安全性 | 相比于POST,安全性较差,因为数据在URL之中 | 更安全,因为不会保存在历史记录和服务器日志中 |
可见性 | 显示在URL中,所有人可见 | 不显示在URL中 |
功能 | 用于获取信息 | 用于修改/更新服务器数据 |
相关问题
1、POST一定安全吗?
答:POST只是相对于GET方法是安全的,因为数据时存储在HTTP请求主体之中,但并不是安全的。然而从传输的角度来说并不是安全的,因为HTTP在网络上数据与铭文传输的,只要在网络节点上进行抓包,就能够获取完整的数据报文。要想传输是也是安全的,就只有通过加密的方式,也就是HTTPS(超文本传输安全协议,主要通过数字认证、加密算法、非对称密钥等技术完成数据传输加密。)