面试经常问你知道哪几种请求方式?
我特地阅读了资料,在这里总结了一下
方法 | 说明 | 支持版本 |
---|---|---|
GET | 获取资源 | 1.0和1.1版本 |
POST | 传输实体主体 | 1.0和1.1版本 |
PUT | 传输文件 | 1.0和1.1版本 |
HEAD | 获得报文首部 | 1.0和1.1版本 |
DELETE | 删除文件 | 1.0和1.1版本 |
OPTIONS | 询问支持的方法 | 1.1版本 |
TRACE | 追踪路径 | 1.1版本 |
CONNECT | 要求用隧道协议连接代理 | 1.1版本 |
可以分组记忆:get post要牢记, put head delete, potions trace connect
废话不多说,一个个解释:
GET:从指定的资源请求数据 ?
get方法用来请求访问已被URI识别的资源
也就是说,如果资源是文本,那就保持原样返回
客户端说: 我要获得xxx.jsp,我是get请求
服务器说: 收到,我帮你找到了资源,给你xxx.jsp
特点:
1.get请求可被缓存
2.get请求保留在浏览器记录中
3.get不用来处理敏感数据
4.get请求有长度限制
5.get请求数据类型值允许ASCII字符
6.点击浏览器刷新,get请求会再次提交
7.get请求的数据是url的一部分,安全较低,所有人可见
POST:向指定的资源提交要被处理的数据 ?
客户端说: 我要把这条秘密消息告诉你,所以我用的是post方式哦!
服务器说: 好的!
特点:
1.post请求不会被缓存
2.post请求对长度没有限制
3.post请求安全,参数不会保存到浏览器记录和web服务器日志中
PUT:传输文件 ?
就像ftp协议的文件上传一样,要求在请求报文的主体中包含内容,然后保存到请求URI指定的位置
put方法本身不带验证机制,所有人都可以上传文件,存在安全问题,一般不用
HEAD:获得报文首部 ?
head方法和get方法一样,只是head方法不返回报文主体
用于确认URI的有效性以及更新日期时间等
DELETE:删除文件 : ?
与put方式相反,delete方法按请求URI删除指定的资源
delete方法也不带验证机制,一般不用
OPTIONS:询问支持的方法 ?
用来查询针对请求的URI指定的资源支持的方法
客户端说: options!!!我这资源有哪些支持的方法
服务器说:支持get和head方法哟 ?!
TRACE:追踪路径 ?
该方法是让web服务器端将之前的请求通信环回给客户端
客户端发送请求是,会在Max-Forwards首部字段中填入数值,
每经过一个服务器端数字就减一
当数值刚好为0时,就停止传输
最后接收到请求的服务器返回状态码200 OK的响应
(这个方法不常用,因为在代理服务器中请求容易被篡改,比如说:跨站追踪)
CONNECT:要求用隧道协议连接代理 ?
该方法实现用隧道协议进行TCP通信
主要使用SSL(secure sockets layer)安全套接层和TLS(transport layer security)传输层安全 协议把通信内容加密后经网络隧道传输
方法简单介绍完毕,记记更有底气. ?
(个人学习总结,转载注明出处,如有错误请指出,谢谢!)