http的8种请求

2020-03-21  本文已影响0人  Zhou_qn

参考文章:
https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Methods

1、options

返回服务器针对特定资源所支持的HTTP方法或向web服务器发送*测试服务器功能(允许客户端查看服务器性能)

用来描述了目标资源的通信选项,会返回服务器支持预定义URL的HTTP策略。

可以使用 OPTIONS 方法对服务器发起请求,以检测服务器支持哪些 HTTP 方法:

curl -X OPTIONS http://example.org -i

响应报文包含一个 Allow首部字段,该字段的值表明了服务器支持的所有 HTTP 方法:

HTTP/1.1 200 OK
Allow: OPTIONS, GET, HEAD, POST
Cache-Control: max-age=604800
Date: Thu, 13 Oct 2016 11:45:00 GMT
Expires: Thu, 20 Oct 2016 11:45:00 GMT
Server: EOS (lax004/2813)
x-ec-custom-error: 1
Content-Length: 0

在 CORS中,可以使用 OPTIONS 方法发起一个预检请求,以检测实际请求是否可以被服务器所接受。预检请求报文中的 Access-Control-Request-Method 首部字段告知服务器实际请求所使用的 HTTP 方法Access-Control-Request-Headers首部字段告知服务器实际请求所携带的自定义首部字段。服务器基于从预检请求获得的信息来判断,是否接受接下来的实际请求。

OPTIONS /resources/post-here/ HTTP/1.1 
Host: bar.other 
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 
Accept-Language: en-us,en;q=0.5 
Accept-Encoding: gzip,deflate 
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7 
Connection: keep-alive 
Origin: http://foo.example 
Access-Control-Request-Method: POST 
Access-Control-Request-Headers: X-PINGOTHER, Content-Type

服务器所返回的 Access-Control-Allow-Methods首部字段将所有允许的请求方法告知客户端。该首部字段与 Allow类似,但只能用于涉及到 CORS 的场景中。

HTTP/1.1 200 OK
Date: Mon, 01 Dec 2008 01:15:39 GMT 
Server: Apache/2.0.61 (Unix) 
Access-Control-Allow-Origin: http://foo.example 
Access-Control-Allow-Methods: POST, GET, OPTIONS 
Access-Control-Allow-Headers: X-PINGOTHER, Content-Type 
Access-Control-Max-Age: 86400 
Vary: Accept-Encoding, Origin 
Content-Encoding: gzip 
Content-Length: 0 
Keep-Alive: timeout=2, max=100 
Connection: Keep-Alive 
Content-Type: text/plain

2、Get

GET 方法请求指定的资源(请求指定页面信息,并返回实体主体)。使用 GET 的请求应该只用于获取数据,并且不应对数据产生其他影响。。

3、Post

Post方法向指定资源提交数据进行处理请求(提交表单、上传文件),又可能导致新的资源的建立或原有资源的修改,POST 方法发送数据给服务器. 请求主体的类型由 Content-Type首部指定.

4、Put

PUT 请求方法使用请求中的负载创建或者替换目标资源。

用于将数据发送到服务器以创建或更新资源,它可以用上传的内容替换目标资源中的所有当前内容。(从客户端向服务器传送的数据取代指定文档的内容)
它会将包含的元素放在所提供的URL下,如果URL指示的是当前资源,则会被改变。如果URL未指示当前资源,则服务器可以使用该URL创建资源。

PUTPOST方法的区别在于,PUT方法是幂等的:调用一次与连续调用多次是等价的(即没有副作用),而连续调用多次POST方法可能会有副作用,比如将一个订单重复提交多次。

5、Head

HEAD就像GET,只不过服务端接受到HEAD请求后只返回响应头,而不会发送响应内容。当我们只需要查看某个页面的状态的时候,使用HEAD是非常高效的,因为在传输的过程中省去了页面内容。

6、Delete

Delete方法用来删除指定的资源,它会删除URL给出的目标资源页面。

7、Trace

TRACE 方法实现沿通向目标资源的路径的消息环回(loop-back)测试 ,提供了一种实用的 debug 机制。(回显服务器收到的请求,主要用于测试和诊断)

请求的最终接收者应当原样反射(reflect)它接收到的消息,除了以下字段部分,作为一个Content-Typemessage/http 的200(OK)响应的消息的主体(body)返回给客户端 。
最终接收者是指初始(origin)服务器,或者第一个接收到 Max-Forwards 值为 0的请求的服务器。

8、Connect

CONNECT 方法可以开启一个客户端与所请求资源之间的双向沟通的通道。它可以用来创建隧道(tunnel)。它通过简单的TCP/IP隧道更改请求连接,通常是使用解码的HTTP代理来进行SSL编码的通信(HTTPS)。

CONNECT 可以用来访问采用了 SSL (HTTPS) 协议的站点。客户端要求代理服务器将 TCP 连接作为通往目的主机隧道。之后该服务器会代替客户端与目的主机建立连接。连接建立好之后,代理服务器会面向客户端发送或接收 TCP 消息流。

post和get总结:

get 和 post区别:

1.消息体与携带数据:

2.携带数据的方式:

3.请求数据位置

可以说,GET是从服务器上获取数据,POST是向服务器传送数据

上一篇 下一篇

猜你喜欢

热点阅读