HTTP请求方式
HTTP1.0定义了3种请求方式:GET、POST、HEAD。
HTTP1.1支持7请求方式:GET、POST、HEAD、OPTIONS、PUT、DELETE和TARCE等。在Internet应用中,最常用的方法是GET和POST。
1.GET:从指定的服务器中获取数据
使用GET方法时,查询字符串(键值对)被附加在URL地址后面一起发送到服务器:
/test/demo_form.jsp?name1=value1&name2=value2
特点:
- GET请求能够被缓存
- GET请求会保存在浏览器的浏览记录中
- 以GET请求的URL能够保存为浏览器书签
- GET请求有长度限制
- GET请求主要用以获取数据
2.POST: 提交数据给指定的服务器处理
使用POST方法时,查询字符串在POST信息中单独存在,和HTTP请求一起发送到服务器:
POST /test/demo_form.jsp HTTP/1.1
Host: w3schools.com
name1=value1&name2=value2
特点:
- POST请求不能被缓存下来
- POST请求不会保存在浏览器浏览记录中
- 以POST请求的URL无法保存为浏览器书签
- POST请求没有长度限制
<<<->>>GET和POST的区别:
GET | POST | |
点击返回/刷新按钮 | 没有影响 | 数据会重新发送(浏览器将会提示用户“数据被从新提交”) |
添加书签 | 可以 | 不可以 |
缓存 | 可以 | 不可以 |
编码类型(Encoding type) | application/x-www-form-urlencoded | application/x-www-form-urlencoded or multipart/form-data. 请为二进制数据使用multipart编码 |
历史记录 | 有 | 没有 |
长度限制 | 有 | 没有 |
数据类型限制 | 只允许ASCII字符类型 | 没有限制。允许二进制数据 |
安全性 | 查询字符串会显示在地址栏的URL中,不安全,请不要使用GET请求提交敏感数据 | 因为数据不会显示在地址栏中,也不会缓存下来或保存在浏览记录中,所以看POST比GET请求安全,但也不是最安全的方式。如需要传送敏感数据,请使用加密方式传输 |
可见性 | 查询字符串显示在地址栏的URL中,可见 | 查询字符串不会显示在地址栏中,不可见 |
其他HTTP请求方式
PATCH和PUT的区别:
PATCH | PUT | |
对已有资源的操作: | 用于资源的部分内容更新,比如一个字段: 具体的比如说只更新用户信息的电话号码字段 | 用于更新某个资源较完整的内容,比如说用户要填完整表单更新所有的信息 后台处理更新时可能只是保留内部记录ID不变 |
当资源不存在时: | 联想到版本控制PATCH是修改原来的内容 也可能会产生一个新的版本,比如当资源 不成在的时候,PATCH可能去创建一个新的 资源,像是saveOrUpdate操作 | 只能对已有资源进行更新操作,所以是update操作 |
该方法就是通过http请求删除指定的的url上的资源,Delete请求一般返回3种码:
方式 | 描述 |
Delete | 200(ok)-删除成功,同时返回已经删除的资源 202(Accepted)-删除请求已经接受,但没有被立即执行(资源也许已经被转移到了待删除区域) 204(No Content)-删除请求已经被执行,但是没有返回资源(也许是请求删除不存在的资源造成的) |
HTTP Request Method共计10种
序号 | 方法 | 描述 |
---|---|---|
1 | HEAD | 类似于get请求,只不过返回的响应中没有具体的内容,用于获取报头 |
2 | CONNECT | HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器。 |
3 | OPTIONS | 允许客户端查看服务器的性能。 |
4 | TRACE | 回显服务器收到的请求,主要用于测试或诊断。 |
5 | MOVE | 请求服务器将指定的页面移至另一个网络地址。 |
6 | COPY | 请求服务器将指定的页面拷贝至另一个网络地址。 |
7 | LINK | 请求服务器建立链接关系。 |
8 | UNLINK | 断开链接关系。 |
9 | WRAPPED | 允许客户端发送经过封装的请求。 |
10 | Extension-mothed | 在不改动协议的前提下,可增加另外的方法。 |