一、HTTP协议有哪些方法
http1.0定义了三种请求方法:
GET,POST和HEAD方法。
http1.1新增了五种请求方法:
OPTIONS,PUT,DELETE,TRACT和CONTENT方法。
二、这些方法的具体是什么?
GET方法:
通常用于请求服务器发送某一些资源。
HEAD方法:
请求资源的头部信息,并且这些头部与HTTP GET方法请求时返回一致,该请求方法的一个使用场景是在下载一个大文件前先获取其大小再决定是否需要下载,以此可以节约宽带资源。
OPTIONS方法:
用于获取目的资源所支持的通信选项。
POST方法:
发送数据给服务器。
PUT方法:
新增资源或者使用已知负载资源替换目标资源的表现形式。
DELETE方法:
用于删除指定资源。
PATCH方法:
用于对部分资源进行修改。
CONNECT方法:
connect的作用就是将服务器作为代理,让服务器代替用户去访问其他页面,之后将数据返回给用户。connect是通过TCP连接代理服务器的,假如我想告诉代理服务器向访问https://www.jianshu.com/u/ss
网站,就需要首先建立一条从我的客户端到代理服务器的TCP连接,然后给代理服务器发送一条http报文。
CONNECT https://www.jianshu.com/u/f67233ce6c0c:80 HTTP/1.1
Host: www.web-tinker.com:80
Proxy-Connection: Keep-Alive
Proxy-Authorization: Basic *
Content-Length: 0
TRACE方法:
回显服务器收到的请求,主要用于测试或诊断。
三、get和post请求有什么区别?
1、数据传输方法不同:
get中的数据是通过url进行传输,post中的数据通过请求体传输。
2、安全性不同:
由于get请求的数据是在url中,所以可以通过历史记录缓存很容易查到数据信心,post的数据因为在请求主体内,所以有一定的安全性保证。
3、数据类型不同:
get只允许ascll字符,而post则无限制。
4、get无害
刷新,后退等浏览器操作get请求无害的,post可能重复提交表单。
5、特性不同:
get请求是安全的,这里的安全是指只读特性,就是使用这个方法不会引起服务器状态变化且幂等(幂等的概念是指同一个请求方法执行多次和仅执行一次的效果完全相同),而post是非安全费幂等的。
四、PUT和POST都是给服务器发送新增资源,有什么区别?
PUT和POST方法的区别是:
PUT方法是幂等的,连续调用一次和多次的效果是相同的,但是POST方法是非幂等的。
除此之外,还有一个区别:PUT的URI指向具体单一的资源,而POST可以指向资源集合。
举一个例子:我们在开发一个博客系统,当我们要创建一篇博客往往使用POST请求,在articles的资源集合下创建⼀篇新的⽂章,如果我们多次提交这个请求会创建多个⽂章,这是⾮幂等的。
而PUT的语义是更新文章的资