全面了解HTTP请求方法说明
超文本传输协议(HTTP, HyperText Transfer Protocol)是一种无状态的协议,它位于OSI七层模型的传输层。HTTP客户端会根据需要构建合适的HTTP请求方法,而HTTP服务器会根据不同的HTTP请求方法做出不同的响应。
1. HTTP版本与HTTP请求方法
在HTTP的发展过程中,出现了很多HTTP版本,其中的大部分协议都是向下兼容的。在进行HTTP请求时,客户端在请求时会告诉服务器它采用的协议版本号,而服务器则会在使用相同或者更早的协议版本进行响应。
HTTP/0.9
这是HTTP最早大规模使用的版,现已过时。在这个版本中 只有GET
一种请求方法,在HTTP通讯也没有指定版本号,也不支持请求头信息。该版本不支持POST
等方法,因此客户端向服务器传递信息的能力非常有限。HTTP/0.9
的请求只有如下一行:
- GET www.itbilu.com
HTTP/1.0
这个版本是第一个在HTTP通讯中指定版本号的协议版本,HTTP/1.0
至今仍被广泛采用,特别是在代理服务器中。
HTTP/1.0
支持:GET
、POST
、HEAD
三种HTTP请求方法。
HTTP/1.1
HTTP/1.1
是当前正在使用的版本。该版本默认采用持久连接,并能很好地配合代理服务器工作。还支持以管道方式同时发送多个请求,以便降低线路负载,提高传输速度。
HTTP/1.1
新增了:OPTIONS
、PUT
、DELETE
、TRACE
、CONNECT
五种HTTP请求方法。
HTTP/2
这个版本是最新发布的版本,于今年5月(2015年5月)做HTTP标准正式发布。HTTP/2
通过支持请求与相应的多路重用来减少延迟,通过压缩HTTP头字段将协议开销降到最低,同时增加了对请求优先级和服务器端推送的支持。
2. HTTP请求方法介绍
HTTP/1.1
协议中共定义了8种HTTP请求方法,HTTP请求方法也被叫做“请求动作”,不同的方法规定了不同的操作指定的资源方式。服务端也会根据不同的请求方法做不同的响应。
GET
GET
请求会显示
请求指定的资源。一般来说GET
方法应该只用于数据的读取,而不应当用于会产生副作用的非幂等
的操作中。
GET
会方法请求指定的页面信息,并返回响应主体,GET
被认为是不安全的方法,因为GET
方法会被网络蜘蛛等任意的访问。
HEAD
HEAD
方法与GET
方法一样,都是向服务器发出指定资源的请求。但是,服务器在响应HEAD
请求时不会回传资源的内容部分,即:响应主体。这样,我们可以不传输全部内容的情况下,就可以获取服务器的响应头信息。HEAD
方法常被用于客户端查看服务器的性能。
POST
POST
请求会 向指定资源提交数据,请求服务器进行处理,如:表单数据提交、文件上传等,请求数据会被包含在请求体中。POST
方法是非幂等
的方法,因为这个请求可能会创建新的资源或/和修改现有资源。
PUT
PUT
请求会身向指定资源位置上传其最新内容,PUT
方法是幂等
的方法。通过该方法客户端可以将指定资源的最新数据传送给服务器取代指定的资源的内容。
DELETE
DELETE
请求用于请求服务器删除所请求URI
(统一资源标识符,Uniform Resource Identifier)所标识的资源。DELETE
请求后指定资源会被删除,DELETE
方法也是幂等
的。
CONNECT
CONNECT
方法是HTTP/1.1
协议预留的,能够将连接改为管道方式的代理服务器。通常用于SSL加密服务器的链接与非加密的HTTP代理服务器的通信。
OPTIONS
OPTIONS
请求与HEAD
类似,一般也是用于客户端查看服务器的性能。 这个方法会请求服务器返回该资源所支持的所有HTTP请求方法,该方法会用’*’来代替资源名称,向服务器发送OPTIONS
请求,可以测试服务器功能是否正常。JavaScript的XMLHttpRequest对象进行CORS
跨域资源共享时,就是使用OPTIONS
方法发送嗅探请求,以判断是否有对指定资源的访问权限。 允许
TRACE
TRACE
请求服务器回显其收到的请求信息,该方法主要用于HTTP请求的测试或诊断。
HTTP/1.1之后增加的方法
在HTTP/1.1
标准制定之后,又陆续扩展了一些方法。其中使用中较多的是 PATCH
?方法:
PATCH
PATCH
方法出现的较晚,它在2010年的RFC 5789标准中被定义。PATCH
请求与PUT
请求类似,同样用于资源的更新。二者有以下两点不同:
但
PATCH
一般用于资源的部分更新,而PUT
一般用于资源的整体更新。当资源不存在时,
PATCH
会创建一个新的资源,而PUT
只会对已在资源进行更新。
全面了解HTTP请求方法说明的更多相关文章
- HTTP请求方法详解
HTTP请求方法详解 请求方法:指定了客户端想对指定的资源/服务器作何种操作 下面我们介绍HTTP/1.1中可用的请求方法: [GET:获取资源] GET方法用来请求已被URI识别的资源.指定 ...
- HTTP请求方法
HTTP请求方法 根据HTTP标准,HTTP请求可以使用多种请求方法. HTTP1.0定义了三种请求方法: GET, POST 和 HEAD方法. HTTP1.1新增了五种请求方法:OPTIONS, ...
- iOS开发 GET、POST请求方法(NSURLSession篇)
NSURLConnection,在iOS9被宣布弃用,本文不使用NSURLConnection进行网络编程,有兴趣的童鞋可以参考: [iOS开发 GET.POST请求方法(NSURLConnectio ...
- iOS开发 GET、POST请求方法(NSURLConnection篇)
Web Service使用的主要协议是HTTP协议,即超文本传输协议. HTTP/1.1协议共定义了8种请求方法(OPTIONS.HEAD.GET.POST.PUT.DELETE.TRACE.CONN ...
- HTTP协议中POST、GET、HEAD、PUT等请求方法以及一些常见错误
(来源:http://www.tuicool.com/articles/Ermmmyn) HTTP请求方法: 常用方法: Get\Post\Head (1)Get方法. 取回请求URL标志的任何信息, ...
- HTTP请求响应报文&&相关状态码&&GET_POST请求方法 总结
HTTP请求报文: 一个HTTP请求报文由四个部分组成:请求行.请求头部.空行.请求数据 1.请求行 请求行由请求方法字段.URL字段和HTTP协议版本字段3个字段组成,它们用空格分隔.比如 GE ...
- HTTP 笔记与总结(2 )HTTP 协议的(请求行的)请求方法 及 (响应行的)状态码
(请求行的)请求方法 包括: GET,POST,HEAD,PUT,TRACE,DELETE,OPTIONS 注意:这些请求方法虽然是 HTTP 协议规定的,但是 Web Server 未必允许或支持这 ...
- httpclient请求方法
/** * httpclient请求方法 * @param url 请求地址 * @param paramMap 请求参数 * @param ent 编码格式 gbk.utf-8 * @return ...
- HTTP请求方法对照表
根据HTTP标准,HTTP请求可以使用多种请求方法. HTTP1.0定义了三种请求方法: GET, POST 和 HEAD方法. HTTP1.1新增了五种请求方法:OPTIONS, PUT, DELE ...
- http请求方法与响应状态码
请求方法:GET POST HEAD PUT DELETE OPTIONS常用的方法是:GET POST GET提交可以在浏览器地址栏看到提交的信息 POST提交方式不显示在地址栏,相对于GET方式较 ...
随机推荐
- Java多态面试题案例几解题思路
---恢复内容开始--- Java多态面试题案例几解题思路 这道题是来自别人,先开始看到题很懵,后来有自己的思路: class A { public String show(D obj){ retur ...
- MO拆分计划行程序中写入PRODUCTIONORDERS表数据出现重复导致报错(BUG)20180502
错误提示:ORA-00001: 违反唯一约束条件 (ABPPMGR.C0248833319_6192)ORA-06512: 在 "STG.FP_MO_SPLIT", line 19 ...
- smtp扫描
nc扫描 nc -nv ip号 25 nmap扫描
- Numpy数据处理函数
Numpy函数介绍 import numpy as np #sqrt 计算各元素的平方根 arr = np.arange(10) np.sqrt(arr) array([0. , 1. , 1.414 ...
- Spring知识结构
课程目标: 1. 回顾 * 传统的开发模式 * Struts与Hibernate可以做什么事? ...
- oracle取某字符串字段的后4位
参考 https://zhidao.baidu.com/question/2142799026528780468.html select substr('str1234', -4) from dual
- 基本数据类型(dict)
05. 基本数据类型(dict)内容:1. 字典的简单介绍2. 字典增删改查和其他操作3. 字典的嵌套⼀. 字典的简单介绍字典(dict)是python中唯⼀的⼀个映射类型.他是以{ }括起来的键值对 ...
- 手机端用swiper组件 轮播图设置后右侧出现空白 及 部分手机浏览器打开网页空白
我的方法是设置内容css overflow:hidden;width:100%; ok. 之前搜到一个方法也可以,就是设置css height: auto;overflow-y: scroll; 但是 ...
- 第十一章 串 (c3)KMP算法:理解next[]表
- 树形DP(记忆化搜索) HYSBZ - 1509
题目链接:https://vjudge.net/problem/HYSBZ-1509 我参考的证明的论文:8.陈瑜希<多角度思考 创造性思维>_百度文库 https://wenku.ba ...