HTTP请求方法
在软件学院混到大四了,对于http的请求方法还局限于GET
,POST
,DELETE
,PUT
四种。其中绝大部份做过的项目只有GET
,POST
两种,当然也遇到过所有请求全部用POST
的奇葩项目。
今天看了《图解HTTP》也对HTTP请求方法有了进一步了解,介于网上好像也没有很好的介绍HTTP请求方法的资料,我在这里记录下~
method | description | HTTP vision |
---|---|---|
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 |
LINK | 建立和资源之间的联系 | 1.0 |
UNLINK | 断开链接关系 | 1.0 |
HTTP/1.1中可使用的方法
GET方法
GET
方法通常用来请求被URI识别的资源,资源经过服务区端解析后返回。比如:你请求了一个网页,它就给你返回个html; 如果你请求了某个搜索,服务器就把搜索结果返回给你。
POST方法
POST
方法用来传输实体的主体。
意思就是POST
方法是用来向服务器发送内容的。POST
和GET
很像,GET
也可以向服务器传输实体的主体,但是GET
主要是用来向服务器获取内容的,而POST
不是。
PUT方法
PUT
方法用来传输文件,要求在请求主报文的主体中包含文件内容,然后保存在指定位置。
但是由于PUT
不带验证机制,任何人都可以上传文件。这样就产生了安全问题,所以一般的网站不用这个方法,除非可以配合Web应用的验证机制(spring security)或架构设计采用REST标准的同类web网站,就可能会开放使用PUT方法。
DELETE方法
DELETE
方法与PUT
方法相反,用于删除URI指定的资源。
DELETE
同样不带有验证机制,所以一般的网站不用这个方法,除非在网站中加入了验证机制。
HEAD方法
HEAD
方法用于确认URI的有效性及资源更新时间等,相当于不返回报文主体部分的GET方法。
OPTIONS方法
OPTIONS
方法用来查询服务器支持的HTTP方法。
比如你发了个OPTIONS
请求给服务器,服务器返回了 GET
,POST
,PUT
,DELETE
,说明服务器支持这四种方法。
TRACE方法
TRACE
方法是让Web服务器将之前的请求通信环回给客户端的方法。
客户端可以通过TRACE
方法查询发送出去的请求是怎样被加工/篡改的。因为,请求想要连接到源目标服务器可能会通过代理中转,TRACE
方法就是用来确认链接过程中发生的一系列操作。
(这个方法一般不用)
CONNECT方法
CONNECT
方法要求在与代理服务器通信时建立隧道,实现用隧道协议进行TCP通信。主要是用SSL和TLS协议把通信内容加密后经网络隧道传输。
URI和URL
URI:(Uniform Resource Identifier)
URL: (Uniform Resource Loccator)
相比起URI,我们更熟悉URL。每次我们访问网页需要在浏览器中输入的网址就是URL。
URI
用字符串标示某一互联网资源,而URL
表示资源地点。所以URL
是URI
的子集,但是也可以认为URL
就是URI
。。
什么是REST标准?
REST(Representational State Transfer)描述了一个架构样式的网络系统,比如 web 应用程序。REST并没有一个明确的标准,而更像是一种设计的风格。
所以REST 指的是一组架构约束条件和原则。满足这些约束条件和原则的应用程序或设计就是 RESTful。
资源是由URI来指定。
对资源的操作包括获取、创建、修改和删除资源,这些操作正好对应HTTP协议提供的GET、POST、PUT和DELETE方法。
通过操作资源的表形来操作资源。
参考资料:
上野宣. 图解HTTP[M]. 人民邮电出版社, 2014.
http://www.cnblogs.com/taven/archive/2009/09/06/1561358.html