两个最常用的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方法
注意查询字符串(名称/值对)在POST请求的HTTP邮件正文发送:
POST /test/demo_form.asp HTTP/1.1
Host: w3ii.com
name1=value1&name2=value2
在POST请求的其他一些注意事项:
- POST请求不会被缓存
- POST请求不留在浏览器历史记录
- POST请求,不可添加书签
- POST请求对数据长度没有限制
比较GET与POST
下表比较了这两种HTTP方法:GET和POST。
得到 | POST | |
---|---|---|
BACK按钮/重装 | 无害 | 数据将被重新提交(浏览器应该提醒的数据是将要被重新提交的用户) |
书签 | 可以书签 | 不能书签 |
网页快照 | 可被高速缓存 | 没有缓存 |
编码类型 | 应用程序/ x-WWW的形式,进行了urlencoded | 应用程序/ x-WWW窗体-urlencoded或多部分/表单数据。 使用二进制数据编码的多部分 |
历史 | 参数保持在浏览器历史记录 | 参数不保存在浏览器历史记录 |
数据长度限制 | 是的,发送数据时,GET方法增加了数据的URL; 和URL的长度是有限的(最大URL长度为2048个字符) | 无限制 |
关于数据类型限制 | 只允许ASCII字符 | 无限制。 二进制数据也允许 |
安全 | 相比POST GET不太安全,因为发送的数据是URL的一部分 发送密码或其他敏感信息时,切勿使用GET! | POST比GET更安全一点,因为这些参数并不存储在浏览器历史记录或Web服务器日志 |
能见度 | 数据的所有人都可以在网址 | 数据不显示在URL |
其他HTTP请求方法
下表列出了一些其他的HTTP请求方法:
方法 | 描述 |
---|---|
HEAD | 同GET,但仅返回HTTP头,没有文档主体 |
PUT | 上载到指定的URI的表示 |
DELETE | 删除指定的资源 |
OPTIONS | 返回的HTTP方法服务器支持 |
CONNECT | 请求连接到一个透明的TCP / IP转换隧道 |