HTTP超文本传输协议

合集下载

HTTP协议

HTTP协议

1.概述HTTP协议HTTP(超文本传输协议)是一种用于在网络上传输超文本文档的协议。

它是Web应用程序通信的基础,并且是现代互联网的核心协议之一。

本节将概述HTTP协议的基本概念、工作原理以及其在Web通信中的重要性。

1.1HTTP的定义和发展HTTP是由万维网联盟(World Wide Web Consortium,简称W3C)定义的一种应用层协议。

它最初由蒂姆∙伯纳斯‑李(Tim Berners‑Lee)在1989年设计,用于在客户端和服务器之间传输超文本文档。

随着Web的迅速发展,HTTP也不断演化和发展,目前最常用的版本是HTTP/1.1和HTTP/2。

1.2HTTP的工作原理HTTP协议基于客户端‑服务器模型,客户端发送HTTP请求到服务器,服务器接收请求并返回HTTP响应。

这个过程遵循着请求‑响应的模式,其中请求由请求方法、URL和头部字段组成,响应包含状态码、头部字段和响应体。

1.3HTTP的特点和优势HTTP协议具有以下特点和优势:‑简单易用:HTTP使用简单的请求‑响应模式,易于理解和实现。

‑可扩展性:HTTP 头部字段的灵活性使其具有良好的可扩展性,可以支持各种自定义的应用需求。

‑平台无关性:HTTP协议不依赖于任何特定的操作系统或平台,使得不同系统之间的通信更加便捷。

‑无状态性:HTTP协议本身是无状态的,每个请求和响应之间是相互独立的,不会保留之前的状态信息。

1.4HTTP在Web通信中的重要性HTTP协议在Web通信中起到了关键的作用,它使得用户能够通过浏览器与远程服务器进行交互。

通过HTTP,我们可以获取网页、发送表单数据、上传下载文件等。

同时,HTTP也为Web应用程序提供了基础的通信机制,使得不同的应用能够通过HTTP进行数据交换和服务调用。

1.5HTTP的发展趋势随着互联网的快速发展,HTTP协议也在不断演化和改进。

HTTP/2引入了新的特性如多路复用、头部压缩和服务器推送,以提升性能和效率。

超文本传输协议名词解释

超文本传输协议名词解释

超文本传输协议名词解释超文本传输协议(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协议也将在更多的领域中得到应用。

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

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

超文本传输协议的名词解释超文本传输协议(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: 请求的资源不存在。

超文本传输协议标准

超文本传输协议标准

超文本传输协议标准
超文本传输协议(HTTP)是一种用于传输超文本文档(例如HTML)的应用层协议。

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

HTTP遵循经
典的客户端-服务器模型,客户端通过URL向服务器发送请求,然后
服务器返回响应。

HTTP通常基于传输控制协议(TCP)。

HTTP的标准由互联网工程任务组(IETF)的HTTP工作组负责
制定和维护。

最初由蒂姆·伯纳斯-李和他的团队开发,HTTP的第
一个版本(HTTP/0.9)仅支持GET方法,用于从服务器获取HTML文档。

随后的版本(HTTP/1.0和HTTP/1.1)增加了其他方法(如POST、PUT、DELETE等)以及其他功能,如状态代码、标头字段等。

HTTP的标准化和演变是一个持续的过程。

最新的版本是HTTP/2,它旨在提高性能和减少延迟。

HTTP/3也正在开发中,它将使用基于
用户数据报协议(UDP)的传输层协议来取代TCP,以进一步提高性能。

除了标准的HTTP协议外,还有一些衍生协议和扩展,如HTTPS (HTTP over SSL/TLS)用于加密通信,SPDY用于加速页面加载,WebSocket用于全双工通信等。

总的来说,HTTP作为万维网的基础协议,扮演着连接客户端和服务器之间的重要角色,它的标准化和不断演进对于互联网的发展至关重要。

超文本传输协议是什么

超文本传输协议是什么

超文本传输协议是什么超文本传输协议(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可供使用。

超文本传输协议

超文本传输协议

超文本传输协议超文本传输协议(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)的应用层协议。

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

HTTP是一个基于请求与响应模式的、无状态的协议。

这意味着每次请求都是独立的,服务器不会记录之前的请求,因此需要保持状态的信息需要额外的处理。

HTTP的发展始于1990年,经过多年的发展,目前最新的版本是HTTP/2。

HTTP/2在性能方面有了很大的提升,它采用了多路复用技术,允许多个请求同时在一个TCP连接上进行,避免了过多的连接建立和关闭,提高了传输效率。

除了HTTP/2之外,HTTP还有一些衍生协议,如HTTPS、SPDY等。

其中,HTTPS是在HTTP的基础上加入了SSL/TLS协议,使得数据传输更加安全可靠。

SPDY则是谷歌开发的一种网络协议,旨在减少网页加载时间,提高网络安全性。

在日常生活中,我们经常接触到HTTP协议,比如在浏览器中输入网址访问网页、下载文件、发送电子邮件等。

HTTP协议的应用非常广泛,几乎所有的网页浏览都离不开它。

虽然HTTP协议在传输效率和安全性方面有了很大的进步,但也存在一些问题。

比如,由于HTTP是明文传输,可能会被窃听、篡改,因此在一些对安全性要求较高的场景下,需要使用HTTPS协议。

另外,HTTP协议在传输效率上仍有提升空间,特别是在移动互联网时代,对传输速度的要求越来越高。

总的来说,HTTP协议作为万维网的基础协议,扮演着非常重要的角色。

随着互联网的不断发展,相信HTTP协议也会不断完善,为我们提供更加高效、安全的网络传输服务。

HTTP(超文本传输协议)

HTTP(超⽂本传输协议)HTTP是以超⽂本传输为⽬的⽽设计的应⽤层协议,属于基于TCP/IP实现的协议。

浏览器也属于基于套接字的客户端,因为连接到任意web服务器端时,浏览器内部也会创建套接字。

只不过浏览器多了⼀项功能,将服务器端传输的HTML格式的超⽂本解析为视图。

Web服务器端是以HTTP协议为基础传输超⽂本的服务器端。

为了在⽹络环境下同时向⼤量客户端提供服务,HTTP协议的请求和响应⽅式设计如图:Web服务器端响应客户端请求后会⽴即断开连接。

即服务器不会维持客户端状态。

即使同⼀个客户端再次发送请求,服务器也⽆法辨别是原先哪个,⽽会以相同的⽅式处理新请求。

因此,HTTP⼜称为“⽆状态的Stateless协议”。

请求消息的结构请求消息可以分为请求⾏、消息头、消息体三个部分。

请求⾏含有请求⽅式(请求⽬的)信息。

典型的请求⽅式有GET和POST,GET主要⽤于请求数据,POST主要⽤于传输数据。

其中“GET /index.html HTTP/1.1”具体含义如下: 请求(GET)index.html⽂件,希望以1.1版本的HTTP协议进⾏通信。

请求⾏只能通过1⾏(line)发送,所以服务器很容易从HTTP请求中提取第⼀⾏,并分析请求⾏中的信息。

消息头包含发送请求的(将要接收响应信息的)浏览器信息、⽤户认证信息等。

消息体中装有客户端向服务器发送的数据,为了装⼊数据,需要以POST的⽅式发送请求。

(注:消息头和消息体之间以空⾏隔开,因此不会发⽣边界问题)响应消息的结构响应消息分为状态⾏、消息头、消息体三个部分。

状态⾏中含有关于请求的状态信息。

例如,客户端请求index.html⽂件时,表⽰index.html⽂件是否存在、服务器是否发⽣问题⽽⽆法响应等不同情况的信息将写⼊状态⾏。

表⽰客户端请求的执⾏结果的数字称为状态码,典型的有: 200 OK:成功处理了请求 404 Not Found:请求的⽂件不存在 400 Bad Request:请求⽅式错误,请检查消息头中含有传输的数据类型和长度等信息。

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

实验十三 HTTP超文本传输协议

实验十三 HTTP超文本传输协议一实验目的1、掌握 HTTP 协议的使用;2、了解 HTTP 协议的实现方式。

二实验内容1、学习 HTTP 协议的格式和与 TCP 协议的关系2、了解 HTTP 协议的通信过程;3、理解 HTTP 协议的无连接、无状态特性。

三实验环境四实验流程五实验原理HTTP 协议(HyperText Transfer Protocol,超文本传输协议)是用于从 WWW 服务器传输超文本到本地浏览器的传送协议。

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

它不仅保证计算机正确快速地传输超文本文档,还确定传输文档中的哪一部分,以及哪部分内容首先显示(如文本先于图形)等。

这就是你为什么在浏览器中看到的网页地址都是以http://开头的原因。

HTTP 报文共有两种通用类型:请求报文,响应报文。

1、请求报文格式如下请求行首部空行主体(只在某些报文中出现)各字段说明:请求行格式如下:请求类型空格URL 空格HTTP版本请求类型:此字段定义了几种不同方法的报文类型代码说明GET 客户需要从服务器读取文档时使用HEAD 客户想得到关于文档的某些信息,但该文档不会被返回POST 向服务器发送数据PUT 当客户将新的或者更新的文档放在服务器上时使用COPY 当需要将文件复制到另一个位置时使用MOVE 当需要将文件移动到另一个位置时使用DELETE 当需要将服务器上的文件移走时使用LINK 当需要创建一个文档到另一个文档的链接时使用UNLINK 当删除创建一个文档到另一个文档的链接时使用OPTION 当客户端需要向服务器询问一些可用的选项时使用URL:有四个要素,方法,主机,端口,路径格式如下方法://主机:端口/路径方法:用来读取文档的协议;主机:放置信息的计算机;端口:服务器的端口,可选;路径:放置文件的路径名首部格式如下:由关键字/值对组成,每成一对,关键字/值用”;”分隔,且每一行结尾有回车符,换行符.如下:User-agent:产生请求的浏览器类型Accept:客户端可识别的内容类型列表Host:请求的主机名,允许多个域名同处一个IP地址空行:最后一个请求之后是一个空行,发送回车符和换行符,通知服务器下面不会再有请求;主体:不在GET方法中使用,而在POST方法中使用.2、响应报文格式如下状态行首部空行主体各字段说明:状态行格式如下:HTTP 空格状态空格状态短语状态:1××表示请求已接受,继续处理;2××表示成功的请求3××把客户重定向到一个URL4××客户的错误5××服务器错误状态短语:对状态的描述.六实验步骤步骤一:分析 HTTP 协议:1、在主机上打开协议分析仪,点击工具栏上的“过滤器”,“类型过滤器”的下拉列表中选择“HTTP 协议”,确定后开始进行数据捕获,如图所示2、使用实验室主机上安装的浏览器,例如 IE,打开一个网页3、此时在协议分析仪中可以看到捕获的数据包,从数据包中可以看到 HTTP 请求报文和响应报文,以及其中所使用的命令,如下图所示步骤二:编辑一个 HTTP 报文1、在主机上打开协议数据发生器,在工具栏上选择“添加”,会弹出“协议模板”对话框,选择“HTTP 协议模版”,建立一个 HTTP 数据报文,如图所示2、填写其中以太网帧头、IP 首部、TCP 首部和 HTTP 报文的内容:填写以太网协议首部信息:目的物理地址:在地址本中选择实验室网关的 IP 地址(例如:192.168.1.1),确认后自动填入网关MAC 地址:00-D0-F8-B5-24-8F;源物理地址:在地址本中选择实验主机(例如:192.168.1.2),确认后自动填入实验主机的MAC 地址:02-00-4C-4F-4F-50;类型或长度:该字段应为 0800(即 IP 协议的类型值);填写 IP 协议头信息:总长度字段:包括 TCP 段内容的总长度,20 IP+20 TCP+14 HTTP = 54;高层协议字段:即上层协议类型为 6(TCP 协议的类型为 6);发送 IP 地址:在地址本中选择实验主机的 IP 地址,确认后自动填入主机的IP地址;目标 IP 地址:手工填写某个 WWW 服务器的 IP 地址,例如上例中 的地址:220.181.37.55;点击工具栏中的―校验和‖按钮计算 IP 头校验和。

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

httphttp和其他几种网络协议[1]多个中间层,比如代理,网关,或者隧道(tunnels)。

尽管TCP/IP协议是互联网上最流行的应用,HTTP协议并没有规定必须使用它和(基于)它支持的层。

事实上,HTTP可以在任何其他互联网协议上,或者在其他网络上实现。

HTTP只假定(其下层协议提供)可靠的传输,任何能够提供这种保证的协议都可以被其使用。

通常,由HTTP客户端发起一个请求,建立一个到服务器指定端口(默认是80端口)的TCP连接。

HTTP服务器则在那个端口监听客户端发送过来的请求。

一旦收到请求,服务器(向客户端)发回一个状态行,比如"HTTP/1.1 200 OK",和(响应的)消息,消息的消息体可能是请求的文件、错误消息、或者其它一些信息。

HTTP协议的网页HTTP使用TCP而不是UDP的原因在于(打开一个)一个网页必须传送很多数据,而TCP协议提供传输控制,按顺序组织数据,和错误纠正。

通过HTTP或者HTTPS协议请求的资源由统一资源标示符(Uniform Resource Identifiers)(或者,更准确一些,URLs)来标识。

编辑本段协议功能HTTP是超文本传输协议,是客户端浏览器或其他程序与Web服务器之间的应用层通信协议。

在Internet上的Web服务器上存放的都是超文本信息,客户机需要通过HTTP协议传输所要访问的超文本信息。

HTTP包含命令和传输信息,不仅可用于Web访问,也可以用于其他因特网/内联网应用系统之间的通信,从而实现各类应用资源超媒体访问的集成。

当我们想浏览一个网站的时候,只要在浏览器的地址栏里输入网站的地址就可以了,例如www.*****.com,但是在浏览器的地址栏里面出现的却是:http://www.*******,你知道为什么会多出一个“http”吗?我们在浏览器的地址栏里输入的网站地址叫做URL (Uniform Resource Locator,统一资源定位符)。

就像每家每户都有一个门牌地址一样,每个网页也都有一个Internet地址。

当你在http功用浏览器的地址框中输入一个URL或是单击一个超级链接时,URL就确定了要浏览的地址。

浏览器通过超文本转移协议(HTTP),将Web服务器上站点的网页代码提取出来,并翻译成漂亮的网页。

因此,在我们认识HTTP之前,有必要先弄清楚URL的组成,例如:http://www.******.com/china/index.htm。

它的含义如下:1. http://:代表超文本转移协议,通知****.com服务器显示Web页,通常不用输入;2. www:代表一个Web(万维网)服务器;3. ****.com/:这是装有网页的服务器的域名,或站点服务器的名称;4. China/:为该服务器上的子目录,就好像我们的文件夹;5. Index.htm:index.htm是文件夹中的一个HTML文件(网页)。

我们知道,Internet的基本协议是TCP/IP协议,然而在TCP/IP模型最上层的是应用层(Application layer),它包含所有高层的协议。

高层协议有:文件传输协议FTP、电子邮件传输协议SMTP、域名系统服务DNS、网络新闻传输协议NNTP和HTTP协议等。

HTTP协议(HyperText Transfer Protocol,超文本转移协议)是用于从WWW服务器传输超文本到本地浏览器的传送协议。

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

它不仅保证计算机正确快速地传输超文本文档,还确定传输文档中的哪一部分,以及哪部分内容首先显示(如文本先于图形)等。

这就是你为什么在浏览器中看到的网页地址都是以http://开头的原因。

自WWW诞生以来,一个多姿多彩的资讯和虚拟的世界便出现在我们眼前,可是我们怎么能够更加容易地找到我们需要的资讯呢?当决定使用超文本作为WWW文档的标准格式后,于是在1990年,科学家们立即制定了能够快速查找这些超文本文档的协议,即HTTP协议。

经过几年的使用与发展,得到不断的完善和扩展,目前在WWW中使用的是HTTP/1.0的第六版。

编辑本段协议基础HTTP(HyperText Transfer Protocol)是超文本转移协议的缩写,它用于传送WWW方式的数据,关于HTTP协议的详细内容请参考RFC2616。

HTTP协议采用了请求/响应模型。

客户端向服务器发送一个请求,请求头包含请求的方法、URL、协议版本、以及包含请求修饰符、客户信息和内容的类似于MIME 的消息结构。

服务器以一个状态行作为响应,相应的内容包括消息协议的版本,成功或者错误编码加上包含服务器信息、实体元信息以及可能的实体内容。

通常HTTP消息包括客户机向服务器的请求消息和服务器向客户机的响应消息。

这两种类型的消息由一个起始行,一个或者多个头域,一个指示头域结束的空行和可选的消息体组成。

HTTP的头域包括通用头,请求头,响应头和实体头四个部分。

每个头域由一个域名,冒号(:)和域值三部分组成。

域名是大小写无关的,域值前可以添加任何数量的空格符,头域可以被扩展为多行,在每行开始处,使用至少一个空格或制表符。

通用头域通用头域包含请求和响应消息都支持的头域,通用头域包含Cache-Control、Connection、Date、Pragma、Transfer-Encoding、Upgrade、Via。

对通用头域的扩展要求通讯双方都支持此扩展,如果存在不支持的通用头域,一般将会作为实体头域处理。

下面简单介绍几个在UPnP消息中使用的通用头域。

Cache-Control头域Cache-Control指定请求和响应遵循的缓存机制。

在请求消息或响应消息中设置Cache-Control并不会修改另一个消息处理过程中的缓存处理过程。

请求时的缓存指令包括no-cache、no-store、max-age、max-stale、min-fresh、only-if-cached,响应消息中的指令包括public、private、no-cache、no-store、no-transform、must-revalidate、proxy-revalidate、max-age。

各个消息中的指令含义如下:Public指示响应可被任何缓存区缓存。

Private指示对于单个用户的整个或部分响应消息,不能被共享缓存处理。

这允许服务器仅仅描述当用户http结构的部分响应消息,此响应消息对于其他用户的请求无效。

no-cache指示请求或响应消息不能缓存no-store用于防止重要的信息被无意的发布。

在请求消息中发送将使得请求和响应消息都不使用缓存。

max-age指示客户机可以接收生存期不大于指定时间(以秒为单位)的响应。

min-fresh指示客户机可以接收响应时间小于当前时间加上指定时间的响应。

max-stale指示客户机可以接收超出超时期间的响应消息。

如果指定max-stale消息的值,那么客户机可以接收超出超时期指定值之内的响应消息。

HTTP Keep-AliveKeep-Alive功能使客户端到服务器端的连接持续有效,当出现对服务器的后继请求时,Keep-Alive功能避免了建立或者重新建立连接。

市场上的大部分Web服务器,包括iPlanet、IIS和Apache,都支持HTTP Keep-Alive。

对于提供静态内容的网站来说,这个功能通常很有用。

但是,对于负担较重的网站来说,这里存在另外一个问题:虽然为客户保留打开的连接有一定的好处,但它同样影响了性能,因为在处理暂停期间,本来可以释放的资源仍旧被占用。

当Web服务器和应用服务器在同一台机器上运行时,Keep- Alive 功能对资源利用的影响尤其突出。

KeepAliveTime 值控制 TCP/IP 尝试验证空闲连接是否完好的频率。

如果这段时间内没有活动,则会发送保持活动信号。

如果网络工作正常,而且接收方是活动的,它就会响应。

如果需要对丢失接收方敏感,换句话说,需要更快地发现丢失了接收方,请考虑减小这个值。

如果长期不活动的空闲连接出现次数较多,而丢失接收方的情况出现较少,您可能会要提高该值以减少开销。

缺省情况下,如果空闲连接 7200000 毫秒(2 小时)内没有活动,Windows 就发送保持活动的消息。

通常,1800000 毫秒是首选值,从而一半的已关闭连接会在 30 分钟内被检测到。

KeepAliveInterval 值定义了如果未从接收方收到保持活动消息的响应,TCP/IP 重复发送保持活动信号的频率。

当连续发送保持活动信号、但未收到响应的次数超出TcpMaxDataRetransmissions 的值时,会放弃该连接。

如果期望较长的响应时间,您可能需要提高该值以减少开销。

如果需要减少花在验证接收方是否已丢失上的时间,请考虑减小该值或 TcpMaxDataRetransmissions 值。

缺省情况下,在未收到响应而重新发送保持活动的消息之前,Windows 会等待1000 毫秒(1 秒)。

KeepAliveTime 根据你的需要设置就行,比如10分钟,注意要转换成MS。

XXX代表这个间隔值得大小。

Date头域Date头域表示消息发送的时间,时间的描述格式由rfc822定义。

例如,Date:Mon,31Dec200104:25:57GMT。

Date描述的时间表示世界标准时,换算成本地时间,需要知道用户所在的时区。

Pragma头域Pragma头域用来包含实现特定的指令,最常用的是Pragma:no-cache。

在HTTP/1.1协议中,它的含义和Cache-Control:no-cache相同。

请求消息请求消息的第一行为下面的格式:MethodSPRequest-URISPHTTP-VersionCRLFMethod表示对于Request-URI完成的方法,这个字段是大小写敏感的,包括OPTIONS、GET、HEAD、POST、PUT、DELETE、TRACE。

方法GET和HEAD应该被所有的通用WEB 服务器支持,其他所有方法的实现是可选的。

GET方法取回由Request-URI标识的信息。

HEAD方法也是取回由Request-URI标识的信息,只是可以在响应时,不返回消息体。

POST方法可以请求服务器接收包含在请求中的实体信息,可以用于提交表单,向新闻组、BBS、邮件群组和数据库发送消息。

SP表示空格。

Request-URI遵循URI格式,在此字段为星号(*)时,说明请求并不用于某个特定的资源地址,而是用于服务器本身。

HTTP-Version 表示支持的HTTP版本,例如为HTTP/1.1。

CRLF表示换行回车符。

相关文档
最新文档