HTTP 方法:GET与POST
两个最常用的HTTP方法:GET和POST。
HTTP是什么?
超文本传输协议(HTTP)的目的是使客户端和服务器之间的通信。
HTTP客户端和服务器之间的请求 - 响应协议。
可能是客户端Web浏览器,可能是服务器的计算机上承载网站的应用程序。
例如:客户端(浏览器)提交的HTTP请求到服务器,然后服务器返回一个响应给客户端。响应中包含有关请求和状态信息也可以被请求的内容。
两个HTTP请求方法:GET和POST
两种常用的方法是:客户端和服务器之间的请求 - 响应GET和POST。
- GET -从指定的资源请求数据
- POST -提交待处理数据到指定的资源
GET方法
需要注意的是发送一个GET请求的URL查询字符串(名称/值对):
/test/demo_form.asp
?name1=value1&name2=value2
GET请求的一些其他注意事项:
- GET请求可以被缓存
- GET请求留在浏览器历史记录
- GET请求可以被保存为书签
- GET请求不应该被用来处理敏感数据时,
- GET请求有长度限制
- GET请求,应只用于检索数据
POST方法
注意:在HTTP消息主体的POST请求发送的查询字符串(名称/值对):
POST /test/demo_form.asp HTTP/1.1
Host: w3schools.com
name1=value1&name2=value2
Host: w3schools.com
name1=value1&name2=value2
在POST请求的一些其他注意事项:
- POST请求是不会被缓存
- POST请求不留在浏览器历史记录
- POST请求不能书签
- POST请求的数据长度没有限制
比较GET与POST
下表比较了两种HTTP方法:GET和POST。
GET POSTBACK按钮/重载 | 无害 | 数据将被重新提交(浏览器应该提醒用户重新提交的数据) |
书签 | 可以加书签 | 无法添加书签 |
缓存 | 可以缓存 | 不缓存 |
编码类型 | 应用程序/ x - www的形式,进行了urlencoded | 应用程序/ x - www的形式,进行了urlencoded的multipart / form-data的。使用多编码的二进制数据 |
历史 | 参数保持在浏览器历史记录 | 参数不保存在浏览器历史记录 |
数据长度的限制 | 是的,当发送数据时,GET方法将数据添加到的URL和一个URL的长度是有限的(URL最大长度为2048个字符) | 没有限制 |
数据类型的限制 | 只有ASCII字符 | 没有任何限制。二进制数据,也允许 |
安全 | 相比POST,GET安全性较差,发送数据的URL 发送密码或其他敏感信息时,切勿使用GET! | POST比GET更安全一点,因为参数不是存储在浏览器历史记录或在Web服务器日志 |
能见度 | 数据是每个人都在URL中可以看到 | 数据没有显示在URL中, |