1 什么是 HTTP
超文本传输协议(HTTP)是一个基于请求与响应,无状态的应用层协议,常基于 TCP/IP
协议传输数据,互联网上应用最为广泛的一种网络协议;设计目的是保证客户机与服务器之间的通信。
2 两种HTTP请求方式:GET 和 POST
1) GET 方法:从指定的资源请求数据
1.1. GET 请求可被缓存。
1.2. GET 请求保留在浏览器历史记录中。
1.3. GET 请求可被收藏为书签。
1.4. GET 请求不应在处理敏感数据时使用
1.5. GET 请求有长度限制(url:2048)
1.6. GET 请求只应当用于取回数据
2) POST 方法:向指定的资源提交要被处理的数据
2.1.POST 请求不会被缓存
2.2.POST 请求不会保留在浏览器历史记录中
2.3.POST 不能被收藏为书签
2.4.POST 请求对数据长度没有要求
3 比较 GET 和 POST
1. 后退按钮/刷新:
GET------>无影响
POST---->数据会被重新提交
2.书签:
GET------>可收藏为书签
POST---->不可收藏为书签
3.缓存:
GET------>能被缓存
POST---->不能缓存
4.编码类型:
GET------>application/x-www-from-urlencode( url 编码)
POST---->application/x-www-urlencode或multipart/from-data( url 或二进制编码)
5.历史记录:
GET------>参数保留在浏览器历史中
POST---->参数不会保留在浏览器历史中
6.对数据长度限制:
GET------>有限制;发数据时,URL 长度受限(最大长度 2048 个字符)
POST---->无限制
7.对数据类型限制:
GET------>只允许 ASCII 字符
POST---->无限制;ASCII 和二进制都允许
8.安全性:
GET------>安全性差;因为所发送的数据是 URL 的一部分,在发送密码或敏感信息时不要使用 GET !
POST---->比 GET 更安全;因为参数不会被保存在浏览器历史中或web服务器日志中
9.可见性:
GET------>请求参数在 URL 中,所有人可见
POST---->请求参数放在 Request body 中,不会在URL中显示,具有隐蔽性
10.搜索方式:
GET------>常用方式是通过 URL 地址栏请求
POST---->常用方式是通过 form 表单发送数据请求