美文网首页
http的8种请求

http的8种请求

作者: Zhou_qn | 来源:发表于2020-03-21 21:55 被阅读0次

参考文章:
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 中的预检请求

在 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 的请求应该只用于获取数据,并且不应对数据产生其他影响。。

  • 说明:GET请求是可以缓存的,我们可以从浏览器历史记录中查找到GET请求,还可以把它收藏到书签中;且GET请求有长度限制,仅用于请求数据(不修改)。

  • 注:因GET请求的不安全性,在处理敏感数据时,绝不可以使用GET请求。

3、Post

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

  • application/x-www-form-urlencoded: 数据被编码成以 '&' 分隔的键-值对, 同时以 '=' 分隔键和值. 非字母或数字的字符会被 percent-encoding: 这也就是为什么这种类型不支持二进制数据(应使用 multipart/form-data 代替).
  • multipart/form-data
  • text/plain
  • 说明:POST请求永远不会被缓存,且对数据长度没有限制;我们无法从浏览器历史记录中查找到POST请求。

4、Put

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

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

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

5、Head

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

  • 请求方法的一个使用场景是在下载一个大文件前先获取其大小再决定是否要下载, 以此可以节约带宽资源.
    HEAD 方法的响应不应包含响应正文. 即使包含了正文也必须忽略掉. 虽然描述正文信息的 entity headers 例如 Content-Length 可能会包含在响应中, 但它们并不是用来描述 HEAD 响应本身的, 而是用来描述同样情况下的 GET请求应该返回的响应.

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.消息体与携带数据:

  • get请求无消息体,只能携带少量数据(提交的数据最多只能有1024字节)

  • post请求有消息体,可以携带大量数据(没有此限制)

2.携带数据的方式:

  • get请求将数据放在url地址中

  • post请求将数据放在消息体中

3.请求数据位置

  • get请求提交的数据放置在HTTP请求协议头中

  • post提交的数据则放在实体数据中;

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

相关文章

  • 【HTTP】HTTP请求

    1、HTTP协议通信流程: 2、HTTP请求包含内容 一个HTTP请求报文由请求行(request line)、请...

  • HTTP

    HTTP简介 HTTP请求格式 HTTP规定,HTTP请求由如下3部分构成 请求方法、URI和HTTP的版本 请求...

  • HTTP协议

    HTTP请求 包含如下内容请求行请求头空行消息体 HTTP请求方法 请求的方法很多,常用的包含如下: HTTP请求...

  • 动脑学院架构篇-HTTP请求、响应报文格式

    【HTTP】HTTP请求、响应报文格式 HTTP请求报文格式: HTTP请求报文主要由请求行、请求头部、请求数据3...

  • IDEA自带http请求工具

    编辑http请求文件(文件名后缀为.http) GET请求 POST请求 执行http请求 查看http结果

  • HTTP协议相关

    HTTP超文本传输协议 HTTP的请求方式有哪些?GET请求和POST请求的区别?HTTP请求的特点 HTTP的请...

  • HTTP协议报文及Chrome Network常用功能

    HTTP协议报文 Http协议报文分为【Http请求报文】和【Http响应报文】 HTTP请求报文 Http请求报...

  • HTTP 请求

    Code=-999 错误400 ------参数错误网络请求出现Code=-1022

  • http请求

    Request 请求行。 Method+URL+Version 请求头。 字段名+字段值----+请求内容 R...

  • http请求

    ajax原生 angular rxjs

网友评论

      本文标题:http的8种请求

      本文链接:https://www.haomeiwen.com/subject/pctuyhtx.html