龙凤呈祥是什么意思| 布尔乔亚什么意思| 甲功三项是检查什么| 周围神经炎是什么症状| 仙草粉是什么做的| 教育的本质是什么| 吃什么保养子宫和卵巢| 尿什么味道| 大卡是什么意思| 镜检白细胞高是什么原因| 火影忍者大结局是什么| 肺纤维化是什么症状| 61岁属什么生肖| 国外微信叫什么| 肛裂是什么感觉| 食管裂孔疝是什么原因造成的| 41年属什么生肖| 这是什么地方| 肛裂擦什么药膏| 楚怀王和芈月什么关系| fk是什么意思| 顺从是什么意思| 吃什么血脂降的最快| 白果有什么功效与作用| 赝品是什么意思| 迷茫什么意思| 县人民医院是什么级别| 西元前是什么意思| 经常口腔溃疡是什么原因引起的| 积是什么意思| 葵水是什么| 甲午五行属什么| 搞基是什么意思| 大拇指麻木是什么原因| 泥鳅喜欢吃什么食物| 风邪是什么| 舌头上有白苔是什么原因| 39年属什么生肖| 血糖偏高吃什么水果好| 轻微骨裂了有什么表现| 三福是什么| 曦字五行属什么| 苍蝇喜欢什么味道| 手指发痒是什么原因| 梦见自己得了重病预示什么| dolphin是什么意思| 肺热吃什么中成药| 高筋小麦粉适合做什么| 同学过生日送什么礼物好| 急性肠胃炎吃什么药好| 为什么姨妈迟迟不来| 79属什么生肖| 什么水越洗越脏| 什么时候同房容易怀孕| jewelry什么意思| 梦见老鼠是什么预兆| 急性乳腺炎是什么原因引起的| 宫腔积液是什么| 多字五行属什么| 经常抽筋是什么原因| 吃什么能去湿气最好| 骨折什么意思| 66年出生属什么生肖| 梦到装修房子是什么征兆| 12.24是什么星座| 早晨8点是什么时辰| 支气管炎吃什么药好| 酒蒙子是什么意思| 严重失眠吃什么药管用| 肾阴虚吃什么中药| 88年属什么生肖| 穷的生肖指什么生肖| 镇长什么级别| 鞋子eur是什么意思| 五月17号是什么星座| 威士忌属于什么酒| 兵解是什么意思| 蛇用什么呼吸| 42是什么生肖| 苦丁茶有什么作用和功效| 热得什么| 白马王子是什么意思| 湖南省的简称是什么| 浑身出汗是什么原因| dunk是什么意思| 淋巴细胞偏高是什么意思| 放河灯是什么节日| 这是什么皮肤病| 吃香蕉有什么好处| 孱弱是什么意思| 过桥米线为什么叫过桥| 东成西就是什么生肖| 月经期后是什么期| 梦见黑蛇是什么预兆| 胃烧灼吃什么立马缓解| 半枝莲有什么功效| 11月6日什么星座| dha是什么意思| 1958年属狗的是什么命| 狗能吃巧克力吗为什么| 手比脸白是什么原因| 处女座的幸运色是什么颜色| 真太阳时是什么意思| 皂基是什么| 制剂是什么意思| 为什么太阳会发光| 1月22日是什么星座| 马拉松起源与什么有关| 梦见孩子被蛇咬是什么意思| 长期咳嗽是什么原因| 心脏病人吃什么水果好| 大熊猫吃什么| 骨客念什么| 夏至有什么习俗| 陈皮泡酒喝有什么功效和作用| 什么助听器| 血热是什么原因引起的| 藜麦是什么| 肺部小结节是什么意思| ipv是什么疫苗| 眉毛长白毛是什么征兆| 白羊和什么星座最配| 井井有条是什么意思| 云指什么生肖| 下雨天适合穿什么衣服| 跑步有什么好处| 素色是什么颜色| 三点水一个前读什么| 小肚子胀气是什么原因| 右手臂痛是什么预兆| 吃豆腐什么意思| 状物是什么意思| 5.22是什么星座| 千什么万| hpv亚临床感染是什么意思| 现在是什么时辰| cpu什么意思| 乳糖不耐受喝什么奶粉比较好| 小三最怕什么| 苏醒是什么意思| 高血压适合吃什么水果| 赵丽颖原名叫什么| 睡美人叫什么名字| 镜检白细胞是什么意思| ca是什么意思| 煲什么汤含蛋白质高| 女人出轨有什么表现| 叫床什么意思| 嘴角烂了擦什么药| 中产阶级的标准是什么| 女性睾酮低意味着什么| 天堂是什么意思| 下饭是什么意思| 甲胎蛋白是什么指标| 什么是生活| 鸡是什么动物| 甲状腺饱满是什么意思| sma是什么| 梦见猪下崽预兆什么| samsung是什么牌子| 科目一和科目四有什么区别| 免疫球蛋白是什么| 网络cp是什么意思| 肝内低密度灶是什么意思| 地球什么时候毁灭| 协警是干什么的| 检察长什么级别| 疯子是什么意思| 肾b超能检查出什么| 520是什么节日| 3月是什么星座的| 肋骨断了是什么感觉| 蜂蜜变质是什么样子| 肿标五项查的是什么| 三sprit是什么牌子| 有趣的什么填空| 头发不干就睡觉有什么危害| 大便很粗是什么原因| 梦见生娃娃是什么意思| 卵巢囊肿吃什么药| dbp是什么意思| 后位子宫什么意思| 打冷是什么意思| 头发掉是什么原因引起的| 社保断交有什么影响| 用什么泡脚可以去湿气| 马来西亚属于什么国家| 梦见和死去的亲人吵架是什么意思| 煞科什么意思| 雪蛤是什么| 心什么如什么| 女人左眼跳是什么意思| 小孩拉肚子吃什么药好| 银杏叶是什么颜色| 做b超能查出什么| 一什么商店| 什么家常菜好吃| 白细胞满视野是什么意思| 女性更年期潮热出汗吃什么药| 静脉曲张挂号挂什么科| 结膜炎是什么原因引起的| 黑枸杞的功效是什么| 安装空调需要注意什么| 月经提前十天是什么原因| 验孕棒ct分别代表什么| 锲而不舍是什么生肖| 一线炎是什么病严重吗| 颈椎疼挂什么科| 88年的属什么生肖| 瘦脱相是什么意思| 躺平是什么意思| 什么的星星| 版图是什么意思| 上夜班吃什么对身体好| 1956年是什么年| 菜花病是什么| 胎盘中药叫什么| pt什么意思| 什么叫根管治疗| 护士证什么时候下来| 周杰伦为什么喜欢昆凌| 结婚要准备什么| 胃肠化是什么意思| 往生咒是什么意思| 普洱在云南什么位置| 毛囊炎长什么样| 肚子疼喝什么药| 闲云野鹤指什么生肖| brown什么意思| 落地签是什么意思| 催丹香是什么意思| 银梳子梳头有什么好处| 诺氟沙星胶囊治什么| 病人打白蛋白意味着什么| 杜冷丁是什么药| 肝掌是什么症状| 斗拱是什么意思| 自豪的什么| 异位妊娠是什么意思| 6月12号是什么星座| 九五年属什么| headache什么意思| 红米有什么功效和作用| 吃什么通便| 错构瘤是什么意思| 遇上方知有什么意思| 解酒的酶是什么酶| 脸痒是什么原因| 今年阴历是什么年| 5p是什么意思| 医院规培生是什么意思| 转氨酶高吃什么药好| 有是什么意思| 甙是什么意思| 琼瑶什么意思| 73年属什么| 玻璃属于什么垃圾| 六味地黄丸吃多了有什么副作用| 七岁属什么生肖| 公章一般是什么字体| 情窦初开什么意思| 天麻主治什么病| 总胆汁酸高是什么意思| 范字五行属什么| 百度跳转到内容

陆军第75集团军:多岗锻炼打造空地一体全能飞行员

本页使用了标题或全文手工转换
维基百科,自由的百科全书
(重定向自HTTP
百度 春节怎么过,也将越来越时代化、多样化。

超文本传输协议(英语:HyperText Transfer Protocol,缩写:HTTP)是一种用于分布式、协作式和超媒体信息系统的应用层协议[1]。HTTP是万维网的数据通信的基础。

设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法。通过HTTP或者HTTPS协议请求的资源由统一资源标识符(Uniform Resource Identifiers,URI)来标识。

HTTP的发展是由蒂姆·伯纳斯-李于1989年在欧洲核子研究组织(CERN)所发起。HTTP的标准制定由万维网协会(World Wide Web Consortium,W3C)和互联网工程任务组(Internet Engineering Task Force,IETF)进行协调,最终发布了一系列的RFC,其中最著名的是1999年6月公布的 RFC 2616,定义了HTTP协议中现今广泛使用的一个版本——HTTP 1.1。

2014年12月,互联网工程任务组(IETF)的Hypertext Transfer Protocol Bis(httpbis)工作小组将HTTP/2标准提议递交至IESG英语Internet Engineering Steering Group进行讨论[2],于2025-08-07被批准。[3]HTTP/2标准于2015年5月以RFC 7540正式发表,取代HTTP 1.1成为HTTP的实现标准。[4]

协议概述

[编辑]

HTTP是一个客户端(用户)和服务端(网站)之间请求和应答的标准,通常使用TCP协议。通过使用网页浏览器网络爬虫或者其它的工具,客户端发起一个HTTP请求到服务器上指定端口(默认端口为80)。我们称这个客户端为用户代理程序(user agent)。应答的服务器上存储着一些资源,比如HTML文件和图像。我们称这个应答服务器为源服务器(origin server)。在用户代理和源服务器中间可能存在多个“中间层”,比如代理服务器网关或者隧道(tunnel)。

尽管TCP/IP协议是互联网上最流行的应用,但是在HTTP协议中并没有规定它必须使用或它支持的层。事实上HTTP可以在任何互联网协议或其他网络上实现。HTTP假定其下层协议提供可靠的传输。因此,任何能够提供这种保证的协议都可以被其使用,所以其在TCP/IP协议族使用TCP作为其传输层。

通常,由HTTP客户端发起一个请求,建立一个到服务器指定端口(默认是80端口)的TCP连接。HTTP服务器则在那个端口监听客户端的请求。一旦收到请求,服务器会向客户端返回一个状态,比如"HTTP/1.1 200 OK",以及返回的内容,如请求的文件、错误消息、或者其它信息。

请求方法

[编辑]

HTTP/1.1协议中共定义了八种方法(也叫“动作”)来以不同方式操作指定的资源:

GET
向指定的资源发出“显示”请求。使用GET方法应该只用在读取资料,而不应当被用于产生“副作用”的操作中,例如在网络应用程序中。其中一个原因是GET可能会被网络爬虫等随意访问。参见安全方法。浏览器直接发出的GET只能由一个url触发。GET上要在url之外带一些参数就只能依靠url上附带querystring。
HEAD
与GET方法一样,都是向服务器发出指定资源的请求。只不过服务器将不传回资源的本文部分。它的好处在于,使用这个方法可以在不必传输全部内容的情况下,就可以获取其中“关于该资源的元信息(或称元数据)”。
POST
向指定资源提交数据,请求服务器进行处理(例如提交表单或者上传文件)。数据被包含在请求本文中。这个请求可能会建立新的资源或修改现有资源,或二者皆有。每次提交,表单的数据被浏览器用编码到HTTP请求的body里。浏览器发出的POST请求的body主要有两种格式,一种是application/x-www-form-urlencoded用来传输简单的数据,大概就是"key1=value1&key2=value2"这样的格式。另外一种是传文件,会采用multipart/form-data格式。采用后者是因为application/x-www-form-urlencoded的编码方式对于文件这种二进制的数据非常低效。
PUT
向指定资源位置上传其最新内容。
DELETE
请求服务器删除Request-URI所标识的资源。
TRACE
回显服务器收到的请求,主要用于测试或诊断。
OPTIONS
这个方法可使服务器传回该资源所支持的所有HTTP请求方法。用'*'来代替资源名称,向Web服务器发送OPTIONS请求,可以测试服务器功能是否正常运作。
CONNECT
HTTP/1.1协议中预留给能够将连接改为隧道方式的代理服务器。通常用于SSL加密服务器的链接(经由非加密的HTTP代理服务器)。

方法名称是区分大小写的。当某个请求所针对的资源不支持对应的请求方法的时候,服务器应当返回状态码405(Method Not Allowed),当服务器不认识或者不支持对应的请求方法的时候,应当返回状态码501(Not Implemented)。

HTTP服务器至少应该实现GET和HEAD方法,其他方法都是可选的。当然,所有的方法支持的实现都应当符合下述的方法各自的语义定义。

此外,特定的HTTP服务器还能够扩展自定义的方法。例如:

PATCH(由 RFC 5789 指定的方法)
用于将局部修改应用到资源。

安全方法

[编辑]

对于GET和HEAD方法而言,除了进行获取资源信息外,这些请求不应当再有其他意义。也就是说,这些方法应当被认为是“安全的”。客户端可能会使用其他“非安全”方法,例如POST,PUT及DELETE,应该以特殊的方式(通常是按钮而不是超链接)告知客户可能的后果(例如一个按钮控制的资金交易),或请求的操作可能是不安全的(例如某个文件将被上传或删除)。

但是,不能想当然地认为服务器在处理某个GET请求时不会产生任何副作用。事实上,很多动态资源会把这作为其特性。这里重要的区别在于用户并没有请求这一副作用,因此不应由用户为这些副作用承担责任。

副作用

[编辑]

假如在不考虑诸如错误或者过期等问题的情况下,若干次请求的副作用与单次请求相同或者根本没有副作用,那么这些请求方法就能够被视作“幂等(idempotence)”的。GET,HEAD,PUT和DELETE方法都有这样的幂等属性,同样由于根据协议,OPTIONS,TRACE都不应有副作用,因此也理所当然也是幂等的。

假如一个由若干请求组成的请求序列产生的结果,在重复执行这个请求序列或者其中任何一个或多个请求后仍没有发生变化,则这个请求序列便是“幂等”的。但是,可能出现一个由若干请求组成的请求序列是“非幂等”的,即使这个请求序列中所有执行的请求方法都是幂等的。例如,这个请求序列的结果依赖于某个会在下次执行这个序列的过程中被修改的变量。

对照表

[编辑]
请求方法的属性
请求方法 RFC 请求有payload body response有payload body 安全的 幂等的 可缓存的
GET RFC 9110 可选
HEAD RFC 9110 可选
POST RFC 9110
PUT RFC 9110
DELETE RFC 9110 可选
CONNECT RFC 9110 可选
OPTIONS RFC 9110 可选
TRACE RFC 9110
PATCH RFC 5789

版本

[编辑]

超文本传输协议已经演化出了很多版本,它们中的大部分都是向下兼容的。在RFC 2145中描述了HTTP版本号的用法。客户端在请求的开始告诉服务器它采用的协议版本号,而后者则在响应中采用相同或者更早的协议版本。

HTTP/0.9

[编辑]

已过时。只接受GET一种请求方法,没有在通讯中指定版本号,且不支持请求头。由于该版本不支持POST方法,因此客户端无法向服务器传递太多信息。

HTTP/1.0

[编辑]

这是第一个在通讯中指定版本号的HTTP协议版本。

HTTP/1.1

[编辑]

默认采用持续连接(Connection: keep-alive),能很好地配合代理服务器工作。还支持以管道方式在同时发送多个请求,以便降低线路负载,提高传输速度。

HTTP/1.1相较于HTTP/1.0协议的区别主要体现在:

  • 缓存处理
  • 带宽优化及网络连接的使用
  • 错误通知的管理
  • 消息在网络中的发送
  • 互联网地址的维护
  • 安全性及完整性

HTTP/2

[编辑]

于2015年5月作为互联网标准正式发布。[4]

HTTP/3

[编辑]

最新版本,于2025-08-07标准化为RFC9114。[5]不依赖TCP,采用基于UDP的传输协议QUIC来承载应用层数据。

状态码

[编辑]

所有HTTP响应的第一行都是状态行,依次是当前HTTP版本号,3位数字组成的状态代码,以及描述状态的短语,彼此由空格分隔。

状态代码的第一个数字代表当前响应的类型:

  • 1xx消息——请求已被服务器接收,继续处理
  • 2xx成功——请求已成功被服务器接收、理解、并接受
  • 3xx重定向——需要后续操作才能完成这一请求
  • 4xx请求错误——请求含有词法错误或者无法被执行
  • 5xx服务器错误——服务器在处理某个正确请求时发生错误

虽然 RFC 2616 中已经推荐了描述状态的短语,例如"200 OK","404 Not Found",但是WEB开发者仍然能够自行决定采用何种短语,用以显示本地化的状态描述或者自定义信息。

持续连线

[编辑]

使用多个链接和使用持久链接的对比

在HTTP 0.9和1.0中,TCP连接在每一次请求/回应对之后关闭。在HTTP 1.1中,引入了保持连线的机制,一个连接可以重复在多个请求/回应使用。持续连线的方式可以大大减少等待时间,因为在发出第一个请求后,双方不需要重新执行TCP握手程序

HTTP 1.1还改进了HTTP 1.0的带宽。 例如,HTTP 1.1引入了分块传输编码,以允许传递内容可以在持续连在线被流传输而不必使用到缓冲器。HTTP管道允许客户端在收到每个回应之前发送多个请求,进一步减少用户感受到的滞后时间。协议的另一个补充是字节服务,允许客户端请求资源的某一部分,服务器仅回应某资源的指明部分。

协议例子

[编辑]

下面是一个HTTP客户端与服务器之间会话的例子,运行于www.google.com,端口80

请求信息

[编辑]

发出的请求信息(message request)包括以下几个:

  • 请求行(例如GET /images/logo.gif HTTP/1.1,表示从/images目录下请求logo.gif这个文件)
  • 请求头(例如Accept-Language: en)
  • 空行
  • 其他消息体

请求行和标题必须以<CR><LF>作为结尾。空行内必须只有<CR><LF>而无其他空格。在HTTP/1.1协议中,所有的请求头,除Host外,都是可选的。

客户端请求

[编辑]
GET / HTTP/1.1
Host: www.google.com

(末尾有一个空行。第一行指定方法、资源路径、协议版本;第二行是在1.1版里必带的一个header作用于指定主机)

服务器应答

[编辑]
HTTP/1.1 200 OK
Content-Length: 3059
Server: GWS/2.0
Date: Sat, 11 Jan 2003 02:44:04 GMT
Content-Type: text/html
Cache-control: private
Set-Cookie: PREF=ID=73d4aef52e57bae9:TM=1042253044:LM=1042253044:S=SMCc_HRPCQiqy
X9j; expires=Sun, 17-Jan-2038 19:14:07 GMT; path=/; domain=.google.com
Connection: keep-alive

(紧跟着一个空行,并且由HTML格式的文本组成了Google的主页)

在HTTP1.0,单一TCP连接内仅执行一个“客户端发送请求—服务器发送应答”周期,之后释放TCP连接。在HTTP1.1优化支持持续活跃连接:客户端连续多次发送请求、接收应答;批量多请求时,同一TCP连接在活跃(Keep-Live)间期内复用,避免重复TCP初始握手活动,减少网络负荷和响应周期。此外支持应答到达前继续发送请求(通常是两个),称为“流线化”(stream)。

类似协议

[编辑]

Gopher是1990年代早期被HTTP取代的内容传递协议。SPDYGoogle开发的HTTP的替代方案,它被新版本的HTTP协议HTTP/2所取代。

参见

[编辑]

参考

[编辑]
  1. ^ Fielding, Roy T.; Gettys, James; Mogul, Jeffrey C.; Nielsen, Henrik Frystyk; Masinter, Larry; Leach, Paul J.; Berners-Lee, Tim. Hypertext Transfer Protocol – HTTP/1.1. IETF. June 1999. RFC 2616. 
  2. ^ Raymor, Brian. Wait for it – HTTP/2 begins Working Group Last Call!. Microsoft Open Technologies. 2025-08-07 [2025-08-07]. (原始内容存档于2025-08-07). 
  3. ^ Mark Nottingham. HTTP/2 Approved. www.ietf.org. Internet Engineering Task Force. 2025-08-07 [2025-08-07]. (原始内容存档于2025-08-07). 
  4. ^ 4.0 4.1 RFC 7540 - Hypertext Transfer Protocol Version 2 (HTTP/2). IETF. May 2015 [14 May 2015]. (原始内容存档于2025-08-07). 
  5. ^ HTTP/3. [2025-08-07]. (原始内容存档于2025-08-07). 

外部链接

[编辑]
钾血症是什么病 什么叫私人会所 蜘蛛属于什么类动物 普瑞巴林胶囊治什么病 无限未来为什么不写了
檀木手串有什么好处 什么叫精神分裂症 生气胸口疼是什么原因 腹胀挂什么科 梦见自己的衣服丢了是什么意思
尿液泡沫多是什么原因 成也萧何败也萧何什么意思 为什么家里不能放假花 白细胞低吃什么食物好 包茎不割会有什么影响
头痛用什么药好 西打酒是什么意思 右眼袋跳动是什么原因 鼻子老流鼻涕是什么原因引起 及第是什么意思
黄斑病变是什么引起的hcv9jop7ns5r.cn pet-ct主要检查什么jinxinzhichuang.com 5.7是什么星座hcv9jop1ns7r.cn 喝啤酒不能吃什么hcv9jop0ns0r.cn 提肛运动有什么好处hcv8jop7ns6r.cn
浅绿色配什么颜色好看hcv9jop2ns6r.cn 什么是负氧离子hcv8jop3ns3r.cn 杀子痣是什么意思0297y7.com 记忆力减退是什么原因造成的hcv7jop6ns2r.cn 印泥用什么能洗掉hcv8jop9ns3r.cn
订婚需要准备什么hcv8jop7ns9r.cn 低密度脂蛋白偏高是什么原因hcv7jop5ns2r.cn 内啡肽是什么0735v.com 小麦什么时候收割hcv7jop6ns3r.cn 赤小豆和红豆有什么区别hcv8jop2ns6r.cn
腰椎间盘突出压迫神经吃什么药hcv8jop0ns0r.cn 丙球是什么hcv9jop6ns6r.cn 一日无书下一句是什么hcv8jop0ns9r.cn mr检查是什么意思hcv9jop3ns2r.cn 李子吃了有什么好处hcv8jop3ns1r.cn
百度