超文本传输协议(HTTP1.1)中文

合集下载

超文本传输协议名词解释

超文本传输协议名词解释

超文本传输协议名词解释超文本传输协议(HTTP)是一种用于传输超文本和其他资源协议的协议。

它是一种基于TCP/IP协议栈的协议,通常用于Web服务器和客户端之间的通信。

HTTP 使用客户端-服务器模型,其中客户端发送HTTP请求,服务器发送HTTP响应。

HTTP协议定义了三种状态:1. 请求状态:当客户端发送HTTP请求时,它处于请求状态。

请求状态会包含请求方法、URL和HTTP版本号。

2. 响应状态:当服务器接收到HTTP请求时,它处于响应状态。

响应状态会包含响应头、响应正文和HTTP版本号。

3. 暂停状态:当客户端和服务器都准备好接收消息时,它们会处于暂停状态。

暂停状态可以防止数据包丢失,并确保消息的完整性。

HTTP请求通常包括请求行和请求头。

请求行包含请求方法、URL和HTTP版本号。

请求头包含请求类型、请求头校验码、HTTP请求版本号等。

HTTP响应通常包括响应行和响应头。

响应行包含响应状态码、响应头、响应正文和HTTP版本号。

HTTP协议还支持各种请求和响应选项,例如GET、POST、PUT、DELETE等。

这些选项允许客户端和服务器在通信中使用不同的操作方式。

HTTP还支持各种头部和选项,例如 caching、proxy、SSL / TLS等。

这些头部和选项允许客户端和服务器在通信中使用不同的协议和操作方式。

HTTP协议具有简单、灵活、可扩展和可定制的特点,因此在Web开发、电子商务、搜索引擎和其他网络应用程序中广泛使用。

此外,随着云计算、物联网和人工智能等技术的发展,HTTP协议也将在更多的领域中得到应用。

RFC2616 中文文档

RFC2616 中文文档

Network Working Group(网络工作组) R. FieldingRequest for Comments: 2616 UC IrvineObsoletes(过时弃用): 2068 J. GettysCategory: Standards Track (类别:标准组)Compaq/W3CJ. MogulCompaqH. FrystykW3C/MITL. MasinterXeroxP. LeachMicrosoftT. Berners-LeeW3C/MITJune 1999超文本传输协议-HTTP/1.1本备忘录状况本文档说明了用于互联网社区的标准化跟踪协议,但还需要讨论和建议以便更加完善。

请参考"互联网官方协议标准"(STD1)来了解本协议的标准化状态。

分发散布本文是不受限制的。

版权声明Copyright (C) The Internet Society (1999). All Rights Reserved.摘要超文本传输协议(HTTP)是一种应用于分布式、协作式、超媒体信息系统的应用层协议。

它是一种通用的,状态无关的协议,可以用于除了超文本以外,还可以通过扩展它的请求方法,错误代码和报头[47]来完成更多任务,比如名称服务和分布对象管理系统。

HTTP的一个特点是数据表示方式的典型性(typing)和可协商性,允许建立独立于被传输数据的系统。

HTTP在1990年WWW全球信息刚刚起步的时候就得到了应用。

本规范定义了HTTP/ 1.1协议,这是RFC 2068的升级版[33]。

[页码1]------------------------------------------------------------------------目录1 Introduction (介绍) (7)1.1 Purpose(目的) (7)1.2 Requirements (要求) (8)1.3 Terminology (术语) (8)1.4 Overall Operation (概述) (12)2 Notational Conventions and Generic Grammar(标志转换及通用语法) (14)2.1 Augmented BNF (扩充的范式) (14)2.2 Basic Rules (基本规则) (15)3 Protocol Parameters (协议参数) (17)3.1 HTTP Version (版本) (17)3.2 Uniform Resource Identifiers (统一资源标识) (18)3.2.1 General Syntax (通用语法) (19)3.2.2 http URL (19)3.2.3 URI Comparison (URI对比) (20)3.3 Date/Time Formats (时间日期格式) (20)3.3.1 Full Date (完整日期) (20)3.3.2 Delta Seconds (21)3.4 Character Sets (字符集) (21)3.4.1 Missing Charset (不见了的字符集) (22)3.5 Content Codings (内容编码) (23)3.6 Transfer Codings (传输编码) (24)3.6.1 Chunked Transfer Coding (大块数据传输编码) (25)3.7 Media Types (媒介类型) (26)3.7.1 Canonicalization and Text Defaults (27)3.7.2 Multipart Types (复合类型) (27)3.8 Product Tokens (产品记号) (28)3.9 Quality Values (质量值) (29)3.10 Language Tags (语言标签) (29)3.11 Entity Tags (实体标签) (30)3.12 Range Units (范围单位) (30)4 HTTP Message (HTTP 消息) (31)4.1 Message Types (消息类型) (31)4.2 Message Headers (消息头) (31)4.3 Message Body (消息主体) (32)4.4 Message Length (消息长度) (33)4.5 General Header Fields (通用头字段) (34)5 Request (请求) (35)5.1 Request-Line (请求行) (35)5.1.1 Method (方法) (36)5.1.2 Request-URI (请求-URI) (36)5.2 The Resource Identified by a Request (38)5.3 Request Header Fields (请求头字段) (38)6 Response (应答) (39)6.1 Status-Line (状态行) (39)6.1.1 Status Code and Reason Phrase (状态码和原因短语) (39)6.2 Response Header Fields (应答头字段) (41)[页码2]------------------------------------------------------------------------7 Entity (实体) (42)7.1 Entity Header Fields (实体头字段) (42)7.2 Entity Body (实体主体) (43)7.2.1 Type (类型) (43)7.2.2 Entity Length (实体长度) (43)8 Connections (连接) (44)8.1 Persistent Connections (持久连接) (44)8.1.1 Purpose (目的) (44)8.1.2 Overall Operation(概述) (45)8.1.3 Proxy Servers (代理服务器) (46)8.1.4 Practical Considerations (实践中的考虑) (46)8.2 Message Transmission Requirements (消息传送请求) (47)8.2.1 Persistent Connections and Flow Control(持久连接和流程控制) (47)8.2.2 Monitoring Connections for Error Status Messages(出错状态消息的监测连接) (48)8.2.3 Use of the 100 (Continue) Status(状态号100的使用) (48)8.2.4 Client Behavior if Server Prematurely Closes Connection(如果服务器过早关闭连接,客户端的行为) (50)9 Method Definitions (方法的定义) (51)9.1 Safe and Idempotent Methods (安全和幂等方法) (51)9.1.1 Safe Methods (安全方法) (51)9.1.2 Idempotent Methods (幂等方法) (51)9.2 OPTIONS (选项) (52)9.3 GET (命令:GET) (53)9.4 HEAD (命令:HEAD) (54)9.5 POST (命令:POST) (54)9.6 PUT (命令:PUT) (55)9.7 DELETE (命令:DELETE) (56)9.8 TRACE (命令:TRACE) (56)9.9 CONNECT (命令:CONNECT) (57)10 Status Code Definitions (状态码定义) (57)10.1 Informational 1xx (报告:1XX) (57)10.1.1 100 Continue (100 继续) (58)10.1.2 101 Switching Protocols(交换协议) (58)10.2 Successful 2xx (成功:2XX) (58)10.2.1 200 OK (200 正常) (58)10.2.2 201 Created (201 已建立) (59)10.2.3 202 Accepted (202 已接受) (59)10.2.4 203 Non-Authoritative Information (无认证信息) (59)10.2.5 204 No Content (无内容) (60)10.2.6 205 Reset Content (重置内容) (60)10.2.7 206 Partial Content (部分内容) (60)10.3 Redirection 3xx (3XX 重定向) (61)10.3.1 300 Multiple Choices (复合选择) (61)10.3.2 301 Moved Permanently (永久转移) (62)10.3.3 302 Found (找到) (62)10.3.4 303 See Other (访问其他) (63)10.3.5 304 Not Modified (304 没有更改) (63)10.3.6 305 Use Proxy (305 使用代理) (64)10.3.7 306 (Unused) (306 未使用) (64)[页码3]------------------------------------------------------------------------10.3.8 307 Temporary Redirect (暂时重定向) (65)10.4 Client Error 4xx (客户端错误) (65)10.4.1 400 Bad Request (错误请求) (65)10.4.2 401 Unauthorized (未认证) (66)10.4.3 402 Payment Required (支付请求) (66)10.4.4 403 Forbidden (禁止) (66)10.4.5 404 Not Found (没有找到) (66)10.4.6 405 Method Not Allowed (方法不容许) (66)10.4.7 406 Not Acceptable (不可接受) (67)10.4.8 407 Proxy Authentication Required (要求代理认证) (67)10.4.9 408 Request Timeout (请求超时) (67)10.4.10 409 Conflict (冲突) (67)10.4.11 410 Gone (离开) (68)10.4.12 411 Length Required (长度请求) (68)10.4.13 412 Precondition Failed (预处理失败) (68)10.4.14 413 Request Entity Too Large (请求的实体太大了) (69)10.4.15 414 Request-URI Too Long (请求URI太长了) (69)10.4.16 415 Unsupported Media Type (不支持的媒提类型) (69)10.4.17 416 Requested Range Not Satisfiable (请求范围未满足) (69)10.4.18 417 Expectation Failed (期望失败) (70)10.5 Server Error 5xx (服务器错误 5XX) (70)10.5.1 500 Internal Server Error (内部错误) (70)10.5.2 501 Not Implemented (未实现) (70)10.5.3 502 Bad Gateway (错误网关) (70)10.5.4 503 Service Unavailable (服务不可用) (70)10.5.5 504 Gateway Timeout (网关超时) (71)10.5.6 505 HTTP Version Not Supported (版本不支持) (71)11 Access Authentication (访问认证) (71)12 Content Negotiation (内容协商) (71)12.1 Server-driven Negotiation (服务器驱动协商) (72)12.2 Agent-driven Negotiation (客户端驱动协商) (73)12.3 Transparent Negotiation (透明协商) (74)13 Caching in HTTP (缓存) (74)13.1.1 Cache Correctness (缓存正确性) (75)13.1.2 Warnings (警告) (76)13.1.3 Cache-control Mechanisms (缓存控制机制) (77)13.1.4 Explicit User Agent Warnings (直接用户代理警告) (78)13.1.5 Exceptions to the Rules and Warnings (规则和警告的异常).78 13.1.6 Client-controlled Behavior(客户控制的行为) (79)13.2 Expiration Model (过期模式) (79)13.2.1 Server-Specified Expiration (服务器指定过期) (79)13.2.2 Heuristic Expiration (启发式过期) (80)13.2.3 Age Calculations (年龄计算) (80)13.2.4 Expiration Calculations (过期计算) (83)13.2.5 Disambiguating Expiration Values (消除歧义的过期值) (84)13.2.6 Disambiguating Multiple Responses (消除歧义的复合应答)..84 13.3 Validation Model (确认模式) (85)13.3.1 Last-Modified Dates (最后更改日期) (86)[页码4]------------------------------------------------------------------------13.3.2 Entity Tag Cache Validators (实体标签缓存确认) (86)13.3.3 Weak and Strong Validators (强弱确认) (86)13.3.4 Rules for When to Use Entity Tags and Last-Modified Dates当使用实体标签和最后更改日期字段时候的规则 (89)13.3.5 Non-validating Conditionals (不可确认的条件) (90)13.4 Response Cacheability (应答缓存功能) (91)13.5 Constructing Responses From Caches (从缓存构造应答) (92)13.5.1 End-to-end and Hop-by-hop Headers (端对端和逐跳的头) (92)13.5.2 Non-modifiable Headers (不可以更改的报头) (92)13.5.3 Combining Headers (组合报头) (94)13.5.4 Combining Byte Ranges (组合字节范围) (95)13.6 Caching Negotiated Responses (缓存协商过的应答) (95)13.7 Shared and Non-Shared Caches (共享和非共享缓存) (96)13.8 Errors or Incomplete Response Cache Behavior(错误或不完整应答缓存行为) (97)13.9 Side Effects of GET and HEAD (GET和HEAD的单方影响) (97)13.10 Invalidation After Updates or Deletions(更新和删除后的失效) (97)13.11 Write-Through Mandatory (强制写通过) (98)13.12 Cache Replacement (缓存替换) (99)13.13 History Lists (历史列表) (99)14 Header Field Definitions (头字段定义) (100)14.1 Accept (接受) (100)14.2 Accept-Charset (接受的字符集) (102)14.3 Accept-Encoding (接受的编码方式) (102)14.4 Accept-Language (接受的语言) (104)14.5 Accept-Ranges (接受的范围) (105)14.6 Age (年龄,生存期) (106)14.7 Allow (容许) (106)14.8 Authorization (认证) (107)14.9 Cache-Control (缓存控制) (108)14.9.1 What is Cacheable (什么可以缓存) (109)14.9.2 What May be Stored by Caches (什么将被缓存存储) (110)14.9.3 Modifications of the Basic Expiration Mechanism基本过期机制的更改 (111)14.9.4 Cache Revalidation and Reload Controls缓存重确认和重载控制 (113)14.9.5 No-Transform Directive (不可转换指示) (115)14.9.6 Cache Control Extensions (缓存控制扩展) (116)14.10 Connection (连接) (117)14.11 Content-Encoding (内容编码) (118)14.12 Content-Language (内容语言) (118)14.13 Content-Length (内容长度) (119)14.14 Content-Location (内容位置) (120)14.15 Content-MD5 (内容的MD5校验) (121)14.16 Content-Range (内容范围) (122)14.17 Content-Type (内容类型) (124)14.18 Date (日期) (124)14.18.1 Clockless Origin Server Operation (无时钟服务器操作)..12514.19 ETag (标签) (126)14.20 Expect (期望) (126)14.21 Expires (过期) (127)14.22 From (来自) (128)[页码5]------------------------------------------------------------------------14.23 Host (主机) (128)14.24 If-Match (如果匹配) (129)14.25 If-Modified-Since (如果自从某个时间已经更改) (130)14.26 If-None-Match (如果没有匹配) (132)14.27 If-Range (如果范围) (133)14.28 If-Unmodified-Since (如果自从某个时间未更改) (134)14.29 Last-Modified (最后更改) (134)14.30 Location (位置) (135)14.31 Max-Forwards (最大向前量) (136)14.32 Pragma (语法) (136)14.33 Proxy-Authenticate (代理鉴别) (137)14.34 Proxy-Authorization (代理授权) (137)14.35 Range (范围) (138)14.35.1 Byte Ranges (字节范围) (138)14.35.2 Range Retrieval Requests (范围重获请求) (139)14.36 Referer (引用自) (140)14.37 Retry-After (一会重试) (141)14.38 Server (服务器) (141)14.39 TE (142)14.40 Trailer (追踪者) (143)14.41 Transfer-Encoding(传输编码) (143)14.42 Upgrade (改良) (144)14.43 User-Agent (用户代理) (145)14.44 Vary (变更) (145)14.45 Via (经由) (146)14.46 Warning (警告) (148)14.47 WWW-Authenticate (WWW鉴别) (150)15 Security Considerations (对安全的考虑) (150)15.1 Personal Information(个人信息) (151)15.1.1 Abuse of Server Log Information (服务日志信息的滥用) (151)15.1.2 Transfer of Sensitive Information (敏感信息传输) (151)15.1.3 Encoding Sensitive Information in URI's(对URI中的敏感信息编码) (152)15.1.4 Privacy Issues Connected to Accept Headers(可接受头的秘密问题) (152)15.2 Attacks Based On File and Path Names基于文件名和路径的攻击 (153)15.3 DNS Spoofing (DNS欺骗) (154)15.4 Location Headers and Spoofing (位置头和欺骗) (154)15.5 Content-Disposition Issues (内容部署问题) (154)15.6 Authentication Credentials and Idle Clients(信用鉴定与空闲客户) (155)15.7 Proxies and Caching (代理与缓存) (155)15.7.1 Denial of Service Attacks on Proxies(对代理的服务拒绝攻击) (156)16 Acknowledgments (致谢) (156)17 References (参考) (158)18 Authors' Addresses (作者地址) (162)19 Appendices (附录) (164)19.1 Internet Media Type message/http and application/http(网络媒体类型:消息/HTTP和应用/HTTP) (164)19.2 Internet Media Type multipart/byteranges(网络媒体类型:多部分/字节范围) (165)19.3 Tolerant Applications (容错的应用) (166)19.4 Differences Between HTTP Entities and RFC 2045 Entities(HTTP的实体和RFC2045中实体的区别) (167)[页码6]------------------------------------------------------------------------19.4.1 MIME-Version (MIME版本) (167)19.4.2 Conversion to Canonical Form (语言形式转变) (167)19.4.3 Conversion of Date Formats (日期格式的转变) (168)19.4.4 Introduction of Content-Encoding (内容编码的介绍) (168)19.4.5 No Content-Transfer-Encoding (不要内容传输编码) (168)19.4.6 Introduction of Transfer-Encoding (传输编码的介绍) (169)19.4.7 MHTML and Line Length Limitations(MHTML与行长度限制) (169)19.5 Additional Features (附加的一些性质) (169)19.5.1 Content-Disposition (内容部署) (170)19.6 Compatibility with Previous Versions (与久版本的兼容性) (170)19.6.1 Changes from HTTP/1.0 (自HTTP/1.0的更改) (171)19.6.2 Compatibility with HTTP/1.0 Persistent Connections(与HTTP/1.1持久连接的兼容性) (172)19.6.3 Changes from RFC 2068 (自RFC268的更改) (172)20 Index (索引) (175)21 Full Copyright Statement (完整版权声明) (176)1 概述1.1 目的超文本传输协议(HTTP)是一种应用于分布式、合作式、多媒体信息系统的应用层协议。

什么是超文本传输协议超文本传输协议功能

什么是超文本传输协议超文本传输协议功能

什么是超⽂本传输协议超⽂本传输协议功能 随着现代通信技术的发展,⽹络技术特别是基于TCP/IP 通信协议的Web技术得到了⼴泛的应⽤和普及。

在TCP/IP 协议基础上建⽴的HTTP 超⽂本传输协议、FTP ⽂件传输协议、Telnet 远程登陆协议以及SMTP 邮件协议等协议族构成了Web 技术的核⼼,随着现代通信技术的发展,⽹络技术特别是基于TCP/IP 通信协议的Web技术得到了⼴泛的应⽤和普及。

在TCP/IP 协议基础上建⽴的HTTP 超⽂本传输协议、FTP ⽂件传输协议、Telnet 远程登陆协议以及SMTP 邮件协议等协议族构成了Web 技术的核⼼呢?下⾯是店铺整理的什么是超⽂本传输协议,欢迎阅读。

什么是超⽂本传输协议 超⽂本传输协议⼀般指http 超⽂本传输协议(HTTP,HyperText Transfer Protocol)是互联⽹上应⽤最为⼴泛的⼀种⽹络协议。

所有的WWW⽂件都必须遵守这个标准。

设计HTTP最初的⽬的是为了提供⼀种发布和接收HTML页⾯的⽅法。

1960年美国⼈Ted Nelson构思了⼀种通过计算机处理⽂本信息的⽅法,并称之为超⽂本(hypertext),这成为了HTTP超⽂本传输协议标准架构的发展根基。

Ted Nelson组织协调万维⽹协会(World Wide Web Consortium)和互联⽹⼯程⼯作⼩组(Internet Engineering Task Force )共同合作研究,最终发布了⼀系列的RFC,其中著名的RFC 2616定义了HTTP 1.1。

超⽂本传输协议技术架构 HTTP是⼀个客户端和服务器端请求和应答的标准(TCP)。

客户端是终端⽤户,服务器端是⽹站。

通过使⽤Web浏览器、⽹络爬⾍或者其它的⼯具,客户端发起⼀个到服务器上指定端⼝(默认端⼝为80)的HTTP 请求。

(我们称这个客户端)叫⽤户代理(user agent)。

应答的服务器上存储着(⼀些)资源,⽐如HTML⽂件和图像。

超文本传输协议的名词解释

超文本传输协议的名词解释

超文本传输协议的名词解释超文本传输协议(Hypertext Transfer Protocol,简称HTTP)是一种用于在计算机网络上进行数据传输的应用层协议。

它是互联网上最常用的协议之一,负责在客户端和服务器之间传输超文本(如HTML、CSS、JavaScript等)和其他资源。

HTTP的设计目标是实现简单、快速和可扩展的数据交换。

一、HTTP的基本概念HTTP是一种基于请求和响应的协议。

客户端向服务器发送请求,服务器根据请求提供相应的资源。

这个过程中,数据以明文的方式进行传输,不加密。

HTTP最初是由蒂姆·伯纳斯-李(Tim Berners-Lee)在1989年设计的,它的出现标志着万维网的诞生。

二、HTTP的工作方式HTTP使用URL(Uniform Resource Locator)来定位网络资源。

URL由协议名、主机名(或IP地址)、端口号和路径组成。

客户端通过向服务器发送HTTP请求来获取资源,请求中包含了使用的方法(如GET、POST等),以及附加的头部信息(如用户代理、内容类型等)。

服务器接收到请求后,根据请求的方法和路径,处理请求并相应客户端。

三、HTTP的方法HTTP定义了多种方法(也称为动词)用于标识请求的目的和操作的类型。

常用的方法有:- GET: 用于获取资源,服务器返回请求的资源。

- POST: 用于向服务器提交数据,比如提交表单。

- PUT: 用于向服务器添加资源或更新已有资源。

- DELETE: 用于删除资源。

- HEAD: 类似于GET,但只返回响应头部信息,不返回实际资源。

- OPTIONS: 用于获取服务器支持的方法信息。

四、HTTP的状态码服务器在响应时会返回一个状态码,用于标识请求的处理结果。

常见的状态码有:- 200 OK: 请求成功,服务器返回请求的资源。

- 301 Moved Permanently: 请求的资源已永久移动到新的URL。

- 404 Not Found: 请求的资源不存在。

超文本传输协议是什么

超文本传输协议是什么

超文本传输协议是什么超文本传输协议(Hypertext Transfer Protocol,简称HTTP)是一种用于传输超文本的应用层协议。

它是万维网的基础,用于在Web浏览器和网站服务器之间传递信息。

HTTP使用统一资源标识符(Uniform Resource Identifiers,简称URI)来定位资源,并使用统一资源定位符(Uniform Resource Locators,简称URL)来表示资源的地址。

HTTP是一个无状态协议,这意味着每个请求都是独立的,服务器不会保存关于客户端的任何信息。

这样的设计使得HTTP协议非常简单,但也带来了一些问题,比如无法保持用户的会话状态。

为了解决这个问题,Web开发人员通常会使用Cookie或Session来跟踪用户的状态。

HTTP是基于请求-响应模型的。

客户端发送一个HTTP请求到服务器,服务器处理请求并返回一个HTTP响应。

请求和响应都包含了头部和主体。

头部包含了一些元数据,比如请求的方法、资源的类型、响应的状态码等。

主体则包含了实际的数据,比如HTML页面、图片、视频等。

HTTP有很多不同的方法,常用的包括GET、POST、PUT、DELETE等。

GET 方法用于请求指定资源,而POST方法用于提交数据到服务器。

PUT方法用于更新资源,DELETE方法用于删除资源。

除了这些常用的方法,HTTP还有很多其他的方法,比如HEAD、OPTIONS、TRACE等。

除了普通的HTTP,还有安全的HTTP,即HTTPS。

HTTPS在HTTP的基础上加入了SSL/TLS协议,用于加密通信内容,保护数据的安全性。

使用HTTPS可以有效防止窃听、篡改和伪造信息,因此在一些对安全性要求较高的场景中被广泛使用。

总之,超文本传输协议是一种用于传输超文本的应用层协议,是Web的基础。

它使用统一资源标识符来定位资源,使用请求-响应模型来传递信息,有多种不同的方法可供选择,而且还有安全的版本HTTPS可供使用。

Http协议规范

Http协议规范

Http协议规范协议名称:HTTP协议规范一、引言HTTP(HyperText Transfer Protocol,超文本传输协议)是一种用于传输超文本的应用层协议。

它是Web应用中最为广泛使用的协议之一,用于客户端和服务器之间的通信。

本协议规范旨在定义HTTP协议的基本要素和行为,以确保互联网上的各个实现都能相互兼容和正确交互。

二、协议版本当前HTTP协议的主要版本为HTTP/1.1,本规范将重点介绍该版本的要素和行为。

三、协议要素1. URI(Uniform Resource Identifier,统一资源标识符)URI用于标识互联网上的资源。

HTTP协议使用URI来定位和访问资源。

URI 由三个部分组成,即协议部分、主机部分和路径部分。

2. 请求方法HTTP定义了一组请求方法,用于指定客户端对服务器资源的操作。

常见的请求方法包括GET、POST、PUT、DELETE等。

每个请求方法都具有特定的语义和操作行为。

3. 状态码服务器在处理请求后会返回一个状态码,用于指示请求的处理结果。

常见的状态码包括200(成功)、404(未找到)、500(服务器内部错误)等。

状态码的具体含义可以参考HTTP协议规范的附录A。

4. 头部字段HTTP协议使用头部字段来传递附加的信息。

头部字段由字段名和字段值组成,以冒号分隔。

常见的头部字段包括Content-Type、Content-Length、User-Agent等。

5. 实体主体某些请求和响应可能包含实体主体,用于传输具体的数据。

实体主体可以是文本、图片、视频等任意类型的数据。

四、请求消息格式HTTP请求消息由请求行、头部字段和实体主体三部分组成。

请求行包含请求方法、URI和协议版本。

头部字段用于传递附加信息。

实体主体用于传输请求的具体数据。

以下是HTTP请求消息的格式示例:```GET /index.html HTTP/1.1Host: User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3```五、响应消息格式HTTP响应消息由状态行、头部字段和实体主体三部分组成。

超文本传输协议

超文本传输协议

超文本传输协议超文本传输协议(Hypertext Transfer Protocol,简称HTTP)是一种用于传输超文本(例如HTML)的协议,是互联网的基础之一、HTTP是一个客户端-服务器协议,允许客户端向服务器发送请求并接收服务器返回的响应。

HTTP协议的发展历程可以追溯到1990年代初,最初作为一种用于浏览器和服务器之间传输HTML页面的协议而诞生。

随着互联网的不断发展,HTTP逐渐成为了一种用于传输各种类型数据的通用协议,并广泛应用于Web开发、移动应用开发、API接口等领域。

HTTP协议基于TCP/IP协议栈,使用可靠的传输机制来保证数据的完整性和可靠性。

它使用了无状态的请求-响应模型,每个请求-响应周期都是相互独立的,服务器不会记住之前请求的任何状态信息。

为了解决这个问题,HTTP提供了一种称为Cookie的机制,用于在客户端和服务器之间保存一些状态信息。

HTTP协议有几个基本的方法(也被称为HTTP动词),包括GET、POST、PUT、DELETE等。

其中,GET方法用于请求服务器上的资源,而POST方法用于发送数据给服务器。

PUT方法用于将数据存储到服务器上的指定位置,DELETE方法用于删除服务器上的资源。

除了这些基本方法外,HTTP还支持一些其他的方法,如HEAD、OPTIONS等。

HTTP协议的消息格式由请求消息和响应消息组成。

请求消息由请求行、请求头和包含请求数据的消息体组成,而响应消息由状态行、响应头和包含响应数据的消息体组成。

请求行包含请求的方法、URI和协议版本,而状态行则包含响应的状态码和状态描述。

HTTP协议还支持使用请求头和响应头来传递一些元数据。

请求头包含了客户端的一些信息,如User-Agent(用户代理)、Accept(可接受的响应格式)等,而响应头则包含了服务器的一些信息,如Content-Type(响应数据的类型)、Content-Length(响应数据的长度)等。

超文本传输协议

超文本传输协议

超文本传输协议超文本传输协议(Hypertext Transfer Protocol,HTTP)是一种用于传输超媒体文件(例如HTML、CSS和JavaScript等)的协议。

它是互联网上最常用的协议之一,用于在Web浏览器和Web服务器之间进行通信。

HTTP是基于客户端-服务器模型的,客户端向服务器发送请求,服务器将响应发送回客户端。

客户端通常是用户使用的Web浏览器,而服务器是存储Web内容的计算机。

HTTP使用TCP/IP协议来建立连接,并使用端口号80。

与其他协议不同,HTTP是一种无状态协议,即服务器在两次请求之间没有记忆。

这意味着每次请求都是独立的,服务器不会记住前面的请求或任何关联的状态。

HTTP请求由请求行、请求头和请求体组成。

请求行包含请求方法(例如GET、POST)和要访问的资源路径。

请求头包含附加的信息,如客户端的浏览器类型、所需的内容类型等。

请求体用于向服务器发送数据,例如通过表单提交的用户输入。

服务器收到请求后,会解析请求行和请求头来确定如何处理请求。

然后,服务器将发送一个响应给客户端。

响应由响应状态行、响应头和响应体组成。

响应状态行包含HTTP版本、状态码(例如200表示成功、404表示未找到)和状态描述。

响应头包含与响应相关的其他信息,如响应的内容类型、长度等。

响应体包含实际的响应数据,如HTML文件或其他媒体文件。

HTTP的主要特点是灵活性、可扩展性和易于实现。

它支持不同的数据格式(如HTML、XML、JSON等)和请求方法(如GET、POST、PUT、DELETE等),可以用于获取、上传、修改和删除Web上的资源。

然而,由于HTTP是明文传输的,存在安全性问题。

为了解决这个问题,可以使用HTTPS(HTTP Secure)协议,它通过使用SSL/TLS加密技术来保护数据的传输安全。

HTTPS使用443端口,而不是HTTP的80端口。

总结起来,HTTP是一种用于传输超媒体文件的协议,其基于客户端-服务器模型,并使用TCP/IP协议在Web浏览器和服务器之间进行通信。

超文本传输协议 -- HTTP11(RFC 2616中文版) 中.

超文本传输协议 -- HTTP11(RFC 2616中文版) 中.

超文本传输协议 -- HTTP/1.1(RFC 2616中文版中13 HTTP中的缓存HTTP 典型应用于能通过采用缓存技术而提高性能的分布式信息系统。

HTTP/1.1协议包括的许多使缓存尽可能的工作的元素。

因为这些元素与协议的其他方面有着千丝万缕的联系,而且他们相互作用、影响,因此有必要单独的来介绍基本的缓存设计。

如果缓存不能改善性能, 他将一无用处。

HTTP/1.1中缓存的目的是为了在很多情况下减少发送请求,同时在许多情况下可以不需要发送完整响应。

前者减少了网络回路(译注:一个请求会返回一个响应,请求响应这个过程就是一个回路的数量;我们利用一个“过期(expiration ”机制来为此目的(见 13.2节。

后者减少了网络应用的带宽;我们用“验证(validation ”机制来为此目的。

对行为, 可行性, 和关闭的操作的要求放松了语义透明性的目的。

HTTP/1.1协议允许服务器, 缓存,和客户端能显示地降低透明性当在必要的时候。

然而,因为不透明的操作能混淆非专业的用户, 同时可能和某个服务器应用程序不兼容 (例如订购商品 , 因此此协议透明性在下面情况下才能被放松要求:-- 只有在一个显示的协议层的请求时,透明性才能被客户端或源服务器放松-- 当出现一个对终端用户的显示的警告时,透明性才能被缓存或被客户端放松因此, HTTP/1.1协议提供这些重要的元素:1.提供完整语义透明的协议特征,当这些特征被通信的所有方需要时2. 允许源服务器或用户代理显示的请求和控制不透明操作的协议特征3. 允许缓存给这样的响应绑定警告信息的协议特征, 这些响应不能保留请求的语义透明的近似一个基本的原则是客户端必须能够发现语义透明性的潜在的放松。

注意:服务器,缓存,或者客户端的实现者可能会面对设计上的判断,而这些判断没有显示地在此规范里讨论。

如果一个判断可能会影响语义透明性,那么实现者应该能维持语义透明性,除非一个仔细的完整的分析能说明打破透明性的好处。

超文本传输协议指的是

超文本传输协议指的是

超文本传输协议指的是超文本传输协议指的是协议双方:甲方:____________________(以下简称“甲方”)地址:____________________电话:____________________法定代表人/负责人:____________________身份证号/统一社会信用代码:____________________乙方:____________________(以下简称“乙方”)地址:____________________电话:____________________法定代表人/负责人:____________________身份证号/统一社会信用代码:____________________一、协议指的本协议指的是甲乙双方在网络传输过程中,使用超文本传输协议(HTTP)进行通信的协议条款。

同时,双方应当遵守中国法律法规,并保证严格按照协议的条款履行各自的权利和义务。

二、协议内容1. 甲方的权利和义务:1.1 甲方应当严格按照本协议的规定,保证提供的网络服务符合国家相关法律法规,并保护乙方的隐私和信息安全;1.2 甲方应当根据乙方的要求,及时、准确地提供相关信息和服务,并保证信息的准确性和完整性;1.3 甲方应当积极配合乙方对网络传输过程中发生的问题进行处理,并在第一时间解决相关问题;1.4 如因甲方原因导致乙方损失的,甲方应当承担相应的赔偿责任。

2. 乙方的权利和义务:2.1 乙方有权根据自身需求使用甲方提供的网络服务并进行相应操作;2.2 乙方应当保证提供的信息真实、准确、合法,并根据甲方要求提供相关证明材料;2.3 乙方应当遵守国家相关法律法规、道德规范和网络公约,不得进行任何违法违规行为,否则应承担相应的法律责任;2.4 如因乙方原因导致甲方损失的,乙方应当承担相应的赔偿责任。

3. 其他规定:3.1 本协议的效力和可执行性应当符合相关法律法规的要求;3.2 本协议适用于中华人民共和国境内的法律,如有争议,双方应当协商解决,若协商无法解决,双方应当在中华人民共和国有管辖权的人民法院进行诉讼;3.3 本协议一经签署即生效,自______________年____月____日起开始生效,有效期为______________年,届满后如需续签,双方应当在届满前达成一致并签署书面协议。

计算机网络原理 超文本传输协议(HTTP)

计算机网络原理  超文本传输协议(HTTP)

计算机网络原理超文本传输协议(HTTP)HTTP协议(Hypertext Transfer Protocol,超文本传输协议)是用于从WWW服务器传输超文本到本地浏览器的传送协议。

它可以使浏览器更加高效,使网络传输减少。

从层次的角度看,HITP是面向事务的产应用层协议.它是万维网上能够可靠地交换文件(包括文本、声音、图像等各种多媒体文件)的重要基础。

HTTP协议不仅保证计算机正确快速地传输超文本文档,还准确了传输文档中位置等。

所以我们在浏览器中看到的网页地址都是以“http://”开头的。

由于HTTP协议是基于客户机/服务器模式。

所以客户机与服务器建立连接后,发送一个请求给服务器,请求方式的格式为:统一资源标识符(URL)、协议版本号,后边是MIME信息包括请求修饰符、客户机信息和可能的内容。

服务器接到请求后,给予相应的响应信息,其格式为一个状态行,包括信息的协议版本号、一个成功或错误的代码,后边是MIME信息包括服务器信息、实体信息和可能的内容。

许多HTTP通讯是由一个用户代理初始化的并且包括一个申请在源服务器上资源的请求。

最简单的情况可能是在用户代理和服务器之间通过一个单独的连接来完成。

在Internet上,HTTP通讯通常发生在TCP/IP连接之上。

但这并不预示着HTTP协议在Internet或其它网络的其它协议之上才能完成。

HTTP只预示着一个可靠的传输。

所以万维网的大致工作过程如图7-14所示。

图7-14 万维网的工作过程在WWW中,“客户”与“服务器”是一个相对的概念,只存在于一个特定的连接期间,即在某个连接中的客户在另一个连接中可能作为服务器。

基于HTTP协议的客户/服务器模式的信息交换过程,它分四个过程:建立连接、发送请求信息、发送响应信息、释放连接。

这就好像上面的例子,我们电话订货的全过程。

每个万维网网点都有一个服务器进程,它不断地监听TCP的端口80,以便发现是否有浏览器〔即客户进程)向它发出连接建立请求。

HTTP超文本传输协议详解

HTTP超文本传输协议详解

HTTP超文本传输协议详解HTTP协议,全称为超文本传输协议,其HTTP几个缩写字母的含义为(HyperTest Transfer Protocol),本质上是一种用于分布式,协助式的信息系统应用层协议,也是我们所熟悉的万维网的通讯基础。

HTTP的诞生年代并不久远,在1989年由欧洲的核子研究组织(CERN)发起,由万维网协会(W3C)与互联网工程组(IETF)讨论协调,多方共同制定下才有了HTTP1.1作为第一个正式发表的标准。

HTTP本质上是一种客户端(用户端),与服务器端(网站)进行数据的请求和应答的标准,相当于标准的数据交互必须满足这一统一标准,来方便各方对数据的解析与使用,而HTTP作为一种架设在TCP 通信层之上的应用层协议,相当于对TCP传输的这类数据做了相关的规范,实现一统。

比如我们访问某一个网站,那么客户端会向服务器发起一个HTTP的请求到指定的端口(通常为80端口),那么服务器在收到这个标注的HTTP请求后,需要对这个请求产生应答,而应答的内容则是服务器上存储的HTML文件(也就是网页上看到的内容)和图像数据,这些回复同样必须满足HTTP标准,否则回复给客户端的数据是无法正常解析的。

前面已经概括性地说明了HTTP的工作流程,核心就是请求与回复的标准,也提到了其是建立在TCP层上的一个应用层协议,那么他们详细的交互过程是怎么样的呢?首先第一步,客户端需要先连接到指定的web服务器,当你打开浏览器输入网址访问时,浏览器会在后台创建一个TCP客户端,向服务器端请求连接,端口就是前面讲到的,一般为80端口。

第二步,后台需要进行HTTP组包,也就是HTTP协议的核心,一则数据,到底长什么样,需要有什么标准,才是协议的本质,比如如下一则请求信息,他应当包含有这些部分这样一则数据将会被发送至服务器,服务器需要在解析前面部分后对数据部分进行回复,需要注意的是,服务器是不对来访数据进行保存的,也没有重发机制,所以请求失败是不可逆的,如果失败需要重新发起请求。

什么是超文本传输协议

什么是超文本传输协议

什么是超文本传输协议超文本传输协议(Hypertext Transfer Protocol,简称HTTP)是一种用于传输超媒体文档(如 HTML)的应用层协议。

它是万维网的数据通信的基础。

HTTP是一个客户端服务器协议,请求和响应的交互是HTTP的核心。

HTTP是基于请求和响应的模式工作的。

客户端向服务器发送一个HTTP请求,服务器收到请求后返回一个HTTP响应。

在这个过程中,客户端和服务器之间通过互联网进行通信。

HTTP协议是建立在TCP/IP协议之上的。

TCP/IP协议是一种可靠的数据传输协议,它保证了数据的可靠传输。

HTTP在TCP/IP协议的基础上,定义了客户端和服务器之间的通信规则,使得万维网上的各种资源能够被有效地传输和共享。

HTTP协议使用统一资源标识符(Uniform Resource Identifier,URI)来标识要获取的资源。

URI是一个字符串,用来唯一标识一个资源。

在HTTP请求中,客户端会指定要获取的资源的URI,服务器根据这个URI来确定要返回的资源。

HTTP协议定义了一些不同的方法来表示对资源的不同操作。

其中最常见的方法是GET和POST。

GET方法用来请求服务器返回某个资源,而POST方法用来向服务器提交数据。

除了这两种方法,HTTP还定义了一些其他方法,如PUT、DELETE等,用来表示对资源的不同操作。

除了方法之外,HTTP协议还定义了一些不同的状态码来表示不同的请求结果。

状态码是服务器在响应中返回的一个数字,用来表示对请求的处理结果。

比较常见的状态码有200(表示请求成功)、404(表示请求的资源不存在)、500(表示服务器内部错误)等。

HTTP协议是一个无状态的协议,也就是说每个请求都是独立的,服务器不会保存任何关于客户端的状态信息。

这就意味着每个请求都需要携带足够的信息来让服务器能够理解并处理请求。

总的来说,HTTP是一种用于传输超媒体文档的应用层协议,它定义了客户端和服务器之间的通信规则,使得万维网上的各种资源能够被有效地传输和共享。

超文本传输协议

超文本传输协议

超文本传输协议1. 引言超文本传输协议(Hypertext Transfer Protocol,缩写为HTTP),是一种用于在计算机网络上进行通信的协议。

它是Web应用的基础,使得浏览器能够与Web 服务器进行交互,并获取所需的信息。

HTTP是一个无状态的协议,它在客户端和服务器之间以请求-响应的方式进行通信。

本文将介绍HTTP的基本原理、请求和响应的结构以及一些常见的HTTP方法和状态码。

2. HTTP基本原理HTTP使用TCP/IP协议族作为其传输协议,通过在应用层和传输层进行数据交换,实现客户端和服务器之间的通信。

在HTTP通信中,客户端发送一个HTTP 请求到服务器,服务器收到请求后进行处理,并将处理结果作为HTTP响应返回给客户端。

3. HTTP请求结构HTTP请求由三个主要部分组成:请求行、请求头和请求体。

3.1 请求行请求行包括以下三个字段:•HTTP方法:表明客户端想要对服务器执行的操作,常见的方法有GET、POST、PUT和DELETE等。

•请求的URL:表示请求的资源在服务器上的路径。

•HTTP协议的版本:表示客户端使用的HTTP协议版本,如HTTP/1.1。

下面是一个示例请求行:GET /index.html HTTP/1.13.2 请求头请求头提供了关于请求的额外信息,包括请求的主机、用户代理、语言偏好等等。

每一个请求头由一个字段名和一个字段值组成,中间用冒号分隔。

多个请求头之间使用换行符进行分隔。

以下是一些常见的请求头字段:•Host:请求的服务器主机名。

•User-Agent:发起请求的用户代理,通常是浏览器的标识字符串。

•Accept:浏览器能够处理的媒体类型。

•Cookie:在前一次请求中由服务器发送的cookie信息。

3.3 请求体请求体包含了需要发送给服务器的数据,通常在使用POST方法时才会用到。

请求体的内容格式取决于请求头中的Content-Type字段。

超文本传输协议介绍

超文本传输协议介绍
定义:
一种详细规定了浏览器和万维网服务器之间互相通信 的规则,通过因特网传送万维网文档的数据传送协议。
超文本传送协议 (HTTP) 是一种通信协议,它允许将超文 本标记语言 (HTML) 文档从 Web 服务器传送到 Web 浏 览器。HTML 是一种用于创建文档的标记语言,这些文档 包含到相关信息的链接。您可以单击一个链接来访问其它 文档、图像或多媒体对象,并获得关于链接项的附加信息。 HTTP工作在TCP/IP协议体系中的TCP协议上。 客户机和服务器必须都支持 HTTP,才能在万维网上 发送和接收 HTML 文档并进行交互。 HTTP是一个属于应用层的面向对象的 协议,由于其 简捷、快速的方式,适用于分布式超媒体信息系统。它于 1990年提出,经过几年的使用与发展,得到不断地完善 和扩展。前一段时间用的是 HTTP/1.0,现在WWW中使 用的是HTTP/1.1。而且HTTP-NG(Next Generation of HTTP)的建议已经提出。
发出的请求信息包括以下几个: ●请求行,例如GET /images/logo.gif HTTP/1.1,表示从/images目录下请求logo.gif 这个文件。 ●(请求)头,例如Accept-Language: en ●空行 ●可选的消息体 请求行和标题必须以 <CR><LF>作为结尾(也就是,回车然后换行)。 空行内必须只有<CR><LF>而无其他空格。在 HTTP/1.1协议中,所有的请求头,除Host外, 都是可选的。
支持客户/服务器模式。 简单快速:客户向服务器请求 服务时,只需传送请求方法和路径。请求方法常用的有 GET、HEAD、POST。每种方法规定了客户与服务器联系 的类型不同。 由于HTTP协议简单,使得HTTP服务器的 程序规模小,因而通信速度很快。 灵活:HTTP允许传输 任意类型的数据对象。正在传输的类型由Content-Type 加以标记。 无连接:无连接的含义是限制每次连接只处 理一个请求。服务器处理完客户的请求,并收到客户的应 答后,即断开连接。采用这种方式可以节省传输时间。 无状态:HTTP协议是无状态协议。无状态是指协议对于 事务处理没有记忆能力。缺少状态意味着如果后续处理需 要前面的信息,则它必须重传,这样可能导致每 次连接 传送的数据量增大。另一方面,在服务器不需要先前信息 时它的应答就较快。

超文本传输协议

超文本传输协议

超文本传输协议概述超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。

所有的网页浏览都是通过HTTP协议实现的,它定义了客户端(通常是网页浏览器)怎样向服务器请求文件,以及服务器怎样把文件传送给客户端。

历史与发展HTTP/0.9HTTP最初版本,1991年发布,功能简单,仅支持GET方法,没有HTTP头,每次请求只能处理一个文件。

HTTP/1.01996年发布的HTTP/1.0增加了更多请求方法,如POST、HEAD等,并引入了HTTP 头的概念,使得HTTP通信更加灵活和高效。

HTTP/1.11999年发布的HTTP/1.1是当前使用最广泛的版本,增加了持久连接(Persistent Connection)、分块传输编码(Chunked Transfer Coding)等特性,显著提升了性能。

HTTP/22015年发布的HTTP/2在性能上有显著提升,采用了二进制格式传输数据,支持多路复用、头部压缩等技术,有效减少了延迟和提高了传输效率。

HTTP/3预计未来将推出的HTTP/3将基于UDP协议,进一步提升速度和安全性。

工作原理HTTP是基于请求与响应模式的无状态协议。

客户端发送一个请求到服务器,服务器接收这个请求后,对其进行解析,并返回一个响应给客户端。

这个过程可以分为以下几个步骤:建立连接客户端与服务器建立TCP连接。

发送请求客户端发送一个HTTP请求到服务器。

请求报文由三部分组成:请求行、请求头部、空行和请求体。

服务器响应服务器解析请求,定位资源,并将资源封装成HTTP响应报文返回给客户端。

响应报文也由三部分组成:状态行、响应头部、空行和响应体。

关闭连接数据传输完成,双方关闭连接。

主要特点无状态性每个HTTP请求都是独立的,与其他请求无关。

这简化了代理服务器和缓存的设计,但也导致需要额外的机制(例如Cookie)来维持会话状态。

(中文完整版) HTTP 协议1.1

(中文完整版) HTTP 协议1.1

HTTP超文本传输协议-HTTP/1.1中文版摘要超文本传输协议(HTTP)是一种为分布式,合作式,多媒体信息系统服务,面向应用层的协议。

它是一种通用的,不分状态(stateless)的协议,除了诸如名称服务和分布对象管理系统之类的超文本用途外,还可以通过扩展它的请求方式,错误代码和报头来完成许多任务。

HTTP的一个特点是数据表示方式的典型性和可协商性允许独立于传输数据而建立系统。

在1990年WWW全球信息刚刚起步的时候HTTP就得到了应用。

HTTP的第一个版本叫做HTTP/0.9,是一种为互联网原始数据传输服务的简单协议。

由RFC1945定义的HTTP/1.0进一步完善了这个协议。

它允许消息以类似MIME的格式传送,包括有关数据传输的维护信息和关于请求/应答的句法修正。

但是,HTTP/1.0没有充分考虑到分层代理,高速缓存的作用以及对稳定连接和虚拟主机的需求。

并且随着不完善的进程应用的激增,HTTP/1.0迫切需要一个新的版本,以便使两个通信应用程序能够确定彼此的真实性能。

这里规定的协议叫做“HTTP/1.1".这个协议与HTTP/1.0相比,要求更为严格,以确保各项功能得到可靠实现。

实际的信息系统除了简单的检索外,要求更多的功能性(functionality),包括查找(search),前端更新(front-end update)和注解(annotation)。

HTTP允许可扩充的方法集和报头集以指示请求的目的[47]。

它是建立在统一资源标识符(URI)[3]提供的地址(URL)[4]和名字(URN)上[20],以指出方法应用于哪个资源的。

消息以类似于一种叫做多用途网络邮件扩展(MIME)[7]的互联网邮件的格式传送。

HTTP也是用于用户代理之间及代理/网关到其他网络系统的通用通信协议,这样的网络系统可能由SMTP,NNTP,FTP,Gopher和WAIS协议支持。

这样,HTTP允许不同的应用程序对资源进行基本的超媒体访问。

HTTP:超文本传输协议(Hypertext Transfer Protocol)

HTTP:超文本传输协议(Hypertext Transfer Protocol)

HTTP:超文本传输协议(Hypertext Transfer Protocol)超文本传输协议(HTTP)是应用层协议,由于其简捷、快速的方式,适用于分布式和合作式超媒体信息系统。

自1990 年起,HTTP 就已经被应用于WWW 全球信息服务系统。

HTTP 允许使用自由答复的方法表明请求目的,它建立在统一资源识别器(URI)提供的参考原则下,作为一个地址(URL)或名字(URN),用以标志采用哪种方法,它用类似于网络邮件和多用途网际邮件扩充协议(MIME)的格式传递消息。

HTTP 也可用作普通协议,实现用户代理与连接其它Internet 服务(如SMTP、NNTP、FTP、GOPHER 及WAIS)的代理服务器或网关之间的通信,允许基本的超媒体访问各种应用提供的资源,同时简化了用户代理系统的实施。

HTTP 是一种请求/响应式的协议。

一个客户机与服务器建立连接后,发送一个请求给服务器,请求的格式是:统一资源标识符(URI)、协议版本号,后面是类似MIME 的信息,包括请求修饰符、客户机信息和可能的内容。

服务器接到请求后,给予相应的响应信息,其格式是:一个状态行包括信息的协议版本号、一个成功或错误的代码,后面也是类似MIME 的信息,包括服务器信息、实体信息和可能的内容。

HTTP 的第一版本HTTP/0.9 是一种简单的用于网络间原始数据传输的协议。

而由RFC 1945 定义的HTTP/1.0 ,在原HTTP/0.9 的基础上,有了进一步的改进,允许消息以类MIME 信息格式存在,包括请求/响应范式中的已传输数据和修饰符等方面的信息。

但是,HTTP/1.0 没有充分考虑到分层代理服务器、高速缓冲存储器、持久连接需求或虚拟主机等方面的效能。

相比之下,HTTP/1.1 要求更加严格以确保服务的可靠性。

关于安全增强版的HTTP (即S-HTTP),将在相关文件中再作介绍。

协议结构HTTP报文由从客户机到服务器的请求和从服务器到客户机的响应构成。

HTTP和HTTPS协议详细介绍

HTTP和HTTPS协议详细介绍

HTTP和HTTPS协议详细介绍摘要:本文详细介绍了HTTP/HTTPS协议的详细知识,能为编程入门打下基础,也可以作为程序员的参考手册。

1. HTTP1.1 定义和历史HTTP(HyperText Transfer Protocol超文本传输协议),是WWW(World Wide Web,万维网)的传输协议,是TCP/IP模型的应用层协议,负责Web浏览器和Web服务器之间传输超文本信息(Hypertext),超文本信息可以描述超媒体(Hypermedia),而超媒体包括文本、图形、视频、音频等多媒体(Multimedia)信息,这些信息以web页面(Web Page)为单位,他们之间通过超链接(Hyperlink)相互连接。

HTTP发展历史如下:1989年,英国科学家蒂姆伯纳斯李,万维网发明者,创建单行HTTP 协议。

1991年,蒂姆伯纳斯李创建的单行HTTP 协议被命名为HTTP/0.9,支持连接、断开连接、请求和响应。

1996年,HTTP/1.0 发布,支持GET,Head,和POST。

1997年,HTTP/1.1 ( RFC 2068 ) 发布,这是HTTP 的第一个标准化版本,也是目前广泛使用的版本,支持OPTIONS,GET,HEAD,POST,PUT,DELETE,和TRACE。

2015年,HTTP/2发布,支持对流量的并行化、优先化和流量控制。

2021年,HTTP/3草案发布,支持QUIC,QUIC是2012年谷歌基于UDP开发的新协议。

1.2 功能特点HTTP协议采用了请求/响应模型。

客户端向服务器发送一个请求报文,请求报文包含请求的方法、URL、协议版本、请求头部和请求数据。

服务器以一个状态行作为响应,响应的内容包括协议的版本、成功或者错误代码、服务器信息、响应头部和响应数据。

下图来自网上,是HTTP协议的概况。

1.3交互流程HTTP1.0采用普通交互流程,多次交互才能完成信息传输,如下:•Web浏览器(注:用户代理程序包括web浏览器、爬虫等,以下仅仅提Web浏览器)与Web服务器的HTTP端口(默认为80)建立一个TCP套接字连接。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

应用层
超文本传输协议(HTTP)
一、前言
TCP/IP应用层协议有许多种,本文档讲解我们最熟悉的超文本传输协议(HTTP)。

超文本传输协议(HTTP)版本1.1是一个草案标准,其描述见RFC 2612。

旧的HTTP 1.0是一个指示性协议,RFC 1945对它进行了描述。

超文本传输协议是为了传输超文本标记语言(Hypertext Markup Language,HTML)而设计的协议。

HTML是一种用于创建超文本文档的标记语言。

有关HTML的信息请参见相关的超文本标记语言的书籍。

二、HTTP综述
HTTP基于请求—响应活动。

客户端运行浏览器应用程序,它建立与服务器的连接,并以请求的形式发送一个请求到服务器。

服务器用一个状态行做出响应,包括信息的协议版本以及成功或者错误代码,后面跟着一个消息,它包含服务器信息、实体信息和可能的内容。

HTTP事务被划分为如下4个步骤。

除了实验性应用程序之外,现行习惯要求客户在发出每个请求之前先建立连接,并由服务器在发送响应之后关闭连接。

客户和服务器都应当注意任何一方都有可能过早地关闭连接,原因可能是用户操作、自动超时或者程序故障等,他们应当以一种可预见的并且所期望的方式处理这种关闭行为。

在任何一种情况下,任何一方或者双方关闭的连接总是终止当前请求,而不管它的状态如何。

简单的说HTTP是一种无状
态协议,因为它不跟踪连接。

例如:为了装入包含两个图形的页面,支持图形的浏览器将打开三个TCP 连接:一个连接用于页面,而另外连个连接用于图形。

然而大多数浏览器能够同时处理几个这样的连接。

如果一个页面包含大量要素,每个资源都新建一个TCP连接,这将占用大量资源。

在HTTP1.1中缓和了这个问题,它为每种类型元素建立一个TCP连接,同样类型的元素使用同一个TCP连接。

HTTP 1.1不同于HTTP 1.0的地方就是它使用了永久连接。

三、统一资源标识URI
URI亦可称为web地址,是统一资源定位器(URL)和统一资源名称(URN)的组合。

依照RFC 1945种的定义,“统一资源标识符是通过名称、位置或者其他的特征标识资源的简单格式字符串”。

四、HTTP消息类型
HTTP消息既可以是客户端请求也可以是服务器响应。

下面说明了HTTP消息类型:HTTP-message = Request | Response
五、消息头
HTTP消息头字段为如下形式之一:
●一般报文头
●请求报文头
●响应报文头
●实体报文头
●消息体:如果未使用传输编码,可以把消息体称为实体。

●消息长度
5.1一般报文头
一般报文头字段既可以用于请求消息,又可以用于响应消息。

当前的一般报文头字段选项如下:
●缓存控制(Cach-Control)
●连接
●日期
●标记(Pragma)
●传输编码(Transfer-Encoding)
●升级(Upgrade)
●通过(Via)
六、HTTP方法
HTTP方法是HTTP客户机向服务器发出的命令。

HTTP 1.0版本仅定义了三种方法如下表,HTTP1.1
七、状态码
HTTP服务器发送状态码以指出请求的成功或者失败。

HTTP 1.1版本定义的HTTP状态码如下:
八、访问认证
HTTP提供了一种认证机制,它允许服务器规定资源的访问许可及使用这些资源的客户。

认证方法可以是如下两种之一。

8.1基本认证机制
基本认证机制基于用户ID和密码。

在这种认证机制中,服务器只在用户ID和密码通过验证时才允许连接。

在基本认证中,用户ID和密码没有加密。

他们按Base64格式编码。

因此极力推荐使用SSL或者TLS。

8.2摘要认证机制(digest authentication scheme)
摘要认证机制是对HTTP的扩展,其描述见RFC 2617。

在这种认证机制中,用户ID和一个包含密码的散列值的摘要被发送到服务器。

服务器计算一个类似的摘要,如果两个摘要相同则授予对受保护资源的访问。

注意到如果启用摘要认证,在网络上发送的不仅仅是加密密码,这种密码在有正确的密钥下可以被解密,而且还有一个密码的散列值,这是不能被解密的。

因此,与Base64编码密码相比,摘要认证提供了高级的安全性。

可惜的是,摘要认证还没有得到所有浏览的支持。

九、HTTP缓存
HTTP的重要特征之一就是高速缓存能力。

因为HTTP是一个分布式的基于信息的协议,缓存能够显著地提高性能。

HTTP 1.1协议有许多功能可以有效而正确地使用缓存。

在大多数情况下,客户端请求和服务器响应在某个合理的时间范围内可以被保存在一个缓存中,以处理将来相应的请求。

如果响应在缓存中并且正确,则没有必要向服务器请求另一个响应。

这种方法不仅减少了网络带宽需求,而且还加快了速度。

服务器有一种机制来评估响应信息保持有效的最短时间。

那就意味着,服务器确定哪个特定响应消息的过期时间(expiration time)。

因此在这个时间内,可以在不用参考服务器的情况下使用缓存的消息。

考虑一下,如果超过这个时间。

为了能够确认数据是否改变,定义如下认证机制:
9.1过期机制
为了确定数据是否最新,应当确定一个过期时间按。

在大多数情况下,源服务器在特定响应消息中明确地定义过期时间。

如果这样,缓存的数据在过期时间内可以发送给随后的请求。

如果源服务器没有定义任何过期时间。

可以用某些方法来估计/计算一个合理的过期时间(诸如,最后修改(Last-Modified)时间)。

因为这不是从服务器发出的,应当谨慎地使用它们。

9.2验证机制
当超过过期时间时,数据有可能变得失效。

为了确保响应消息的验证,缓存必须检查源服务器(或者可能是一个具有最新响应的中间缓存),确认响应消息是否仍然可用。

HTTP 1.1为此提供了条件性方法。

当一个源服务器发送一个完整的响应时,它把某种验证器附加到消息上。

然后用户代理或者代理缓存将把它作为缓存验证器。

客户端(用户代理或者代理缓存)产生一个附有缓存验证器的条件请求。

然后服务器评估消息并用一个没有实体的特殊代码(通常是304(未修改))做出响应。

否则服务器发送完整的响应(包括实体)。

这种方法不仅在验证器不匹配的情况下避免了额外的往返时间,而且在验证器匹配的情况下避免了发送完整的响应。

相关文档
最新文档