Http协议讲解

了解WWW服务与HTTP协议/上网工作原理(图)

历史上,先后问世了多个具有重大社会影响的电子通信技术。第一个这样的技术是19世纪70年代发明的电话。电话使得不在同一物理位置的两人得以实时地口头交流。它对社会有重大的影响——有好的也有坏的。下一个电子通信技术是20世纪20年代及30年代问世的广播收音机/电视机。广播收音机/电视机使得人们能收听收视大量的音频和视频信息。它对社会同样有重大的影响——有好的也有坏的。改变了人们的生活与工作方式的第三个重大通信技术是web。web最吸引用户的也许是它的随选(on demand)操作性。用户只在想要时收到所要的东西。这一点不同于广播收音机/电视机。广播收音机/电视机的用户是在其内容供应商播出内容期间被迫收听收视。除了随选操作性,Web还有许多大家喜爱的其他精彩特性。任何个人都可以极其容易地在Web上公布任何信息;任何人都可能以极低的成本成为发行人。超链接和搜索引擎帮助我们在Web站点的海洋中导航。图形和动画刺激着我们的感官。表单、Java小应用程序、Activex控件以及其他许多设备使得我们能与Web页面和站点交互。Web还越来越普遍地提供存放在因特网中的、可随选访问(即点播)的大量音频和视频材料的菜单接口。

HTTP概貌

Web的应用层协议HTTP是Web的核心。HTTP在Web的客户程序和服务器程序中得以实现。运行在不同端系统上的客户程序和服务器程序通过交换HTTP消息彼此交流。HTTP定义这些消息的结构以及客户和服务器如何交换这些消息。在详细解释HTTP之前,我们先来回顾一些web中的术语。

Web页面(web page,也称为文档)由多个对象构成。对象(object)仅仅是可由单个URL寻址的文件,例如HTML文件、JPG图像、GIF图像、JAVA小应用程序、语音片段等。大多数Web页面由单个基本HIML

文件和若干个所引用的对象构成。例如,如果一个Web页面包含HTML文本和5个JPEG图像,那么它由6个对象构成,即基本H1ML文件加5个图像。基本HTML文件使用相应的URL来引用本页面的其他对象。每个URL由存放该对象的服务器主机名和该对象的路径名两部分构成。例如,在如下的URL中:

https://www.360docs.net/doc/f710298039.html,/urlpath/picture.qif

https://www.360docs.net/doc/f710298039.html,是一个主机名,/urlpath/picture.qif是一个路径名。浏览器是web的用户代理,它显示所请求的Web页面,并提供大量的导航与配置特性。Web浏览器还实现HTTP的客户端,因此在web 上下文中,我们会从进程意义上互换使用“浏览器”和“客户”两词。流行的Web浏览器有Netscape Com municator,firefox和微软的IE等。Web服务器存放可由URL寻址的Web对象。web服务器还实现HTTP

的服务器端。流行的Web服务器有Apache、微软的IIS以及Netscape Enterprise Server。Netcraft提供了web服务器的概要剖析[Netcrft 2000]。

HTTP定义Web客户(即浏览器)如何从web服务器请求Web页面,以及服务器如何把Web页面传送给客户。下图展示了这种请求—响应行为。当用户请求一个Web页面(譬如说点击某个超链接)时,浏览器把请求该页面中各个对象的HTTP请求消息发送给服务器。服务器收到请求后,以运送含有这些对象HTTP响应消息作为响应。到1997年底,基本上所有的浏览器和Web服务器软件都实现了在RFC 1945中定义的HTTP /1.0版本。1998年初,一些Web服务器软件和浏览器软件开始实现在RFC 2616中定义的HTTP/1.1版本。H1TP/1.1与HTTP/1.0后向兼容;运行1.1版本的web服务器可以与运行1.0版本的浏览器“对话”,运行1.1版本的浏览器也可以与运行1.0版本的Web服务器“对话”。

图1 HTTP请求与响应行为

HTTP/1.0和HTTP/1.1都把TCP作为底层的传输协议。HTTP客户首先发起建立与服务器TCP连接。一旦建立连接,浏览器进程和服务器进程就可以通过各自的套接字来访问TCP。如前所述,客户端套接字是客户进程和TCP连接之间的“门”,服务器端套接字是服务器进程和同一TCP连接之间的“门”。客户往自己的套接字发送HTTP请求消息,也从自己的套接字接收HTTP响应消息。类似地,服务器从自己的套接字接收HTTP请求消息,也往自己的套接字发送HTTP响应消息。客户或服务器一旦把某个消息送入各自的套接字,这个消息就完全落入TCP的控制之中。TCP给HTTP提供一个可靠的数据传输服务;这意味着由客户发出的每个HTTP请求消息最终将无损地到达服务器,由服务器发出的每个HTTP响应消息最终也将无损地到达客户。我们可从中看到分层网络体系结构的一个明显优势——HTTP不必担心数据会丢失,也无需关心TCP如何从数据的丢失和错序中恢复出来的细节。这些是TCP和协议栈中更低协议层的任务。

TCP还使用一个拥塞控制机制。该机制迫使每个新的TCP连接一开始以相对缓慢的速率传输数据,然而只要网络不拥塞,每个连接可以迅速上升到相对较高的速率。这个慢速传输的初始阶段称为缓启动(slo w start)。

需要注意的是,在向客户发送所请求文件的同时,服务器并没有存储关于该客户的任何状态信息。即便某个客户在几秒钟内再次请求同一个对象,服务器也不会响应说:自己刚刚给它发送了这个对象。相反,服务器重新发送这个对象,因为它已经彻底忘记早先做过什么。既然HTTP服务器不维护客户的状态信息,我们于是说HTTP是一个无状态的协议(stateless protocol)。

非持久连接和持久连接

HTTP既可以使用非持久连接(nonpersistent connection),也可以使用持久连接(persistent connec tion)。HTTP/1.0使用非持久连接,HTTP/1.1默认使用持久连接。

非持久连接

让我们查看一下非持久连接情况下从服务器到客户传送一个Web页面的步骤。假设该贝面由1个基本HTML文件和10个JPEG图像构成,而且所有这些对象都存放在同一台服务器主机中。再假设该基本HTML 文件的URL为:https://www.360docs.net/doc/f710298039.html,/somepath/index.html。

下面是具体步骡:

1.HTTP客户初始化一个与服务器主机https://www.360docs.net/doc/f710298039.html,中的HTTP服务器的TCP连接。HTTP服务器使用默认端口号80监听来自HTTP客户的连接建立请求。

2.HTTP客户经由与TCP连接相关联的本地套接字发出—个HTTP请求消息。这个消息中包含路径名/so mepath/index.html。

3.HTTP服务器经由与TCP连接相关联的本地套接字接收这个请求消息,再从服务器主机的内存或硬盘中取出对象/somepath/index.html,经由同一个套接字发出包含该对象的响应消息。

4.HTTP服务器告知TCP关闭这个TCP连接(不过TCP要到客户收到刚才这个响应消息之后才会真正终止这个连接)。

5.HTTP客户经由同一个套接字接收这个响应消息。TCP连接随后终止。该消息标明所封装的对象是一个HTML文件。客户从中取出这个文件,加以分析后发现其中有10个JPEG对象的引用。

6.给每一个引用到的JPEG对象重复步骡1-4。

浏览器在接收web页面的同时把它显示给用户。不同的浏览器可能会以略有不同的方式解释(也就是向用户显示)同一个web页面。HTTP与客户如何解释Web页面没有任何关系,其规范([RFC 1945]和[RFC 261 6I)仅仅定义HTTP客户程序和服务器程序之间的通信协议。

上述步骤之所以称为使用非持久连接,原因是每次服务器发出一个对象后,相应的TCP连接就被关闭,也就是说每个连接都没有持续到可用于传送其他对象。每个TCP连接只用于传输一个请求消息和一个响应消息。就上述例子而言,用户每请求一次那个web页面,就产生11个TCP连接。

在上述步骡中,我们有意不说清客户是通过10个串行的TCP连接先后取得所有JPEG对象,还是通过并行的TCP连接同时取得其中某些JPEG对象。实际上,现今的浏览器允许用户通过配置来控制并行连接的程度。大多数浏览器默认可以打开5到10个并行的TCP连接,每个连接处理一个请求—响应事务。用户要是喜欢,可以把最大并行连接数设为l,那样的话这10个连接是串行地建立的。我们将在第3章看到,使用并行连接可以缩短响应时间。

继续介绍之前,先估算一下从客户请求基本HTML文件到它收到该文件所经历的时间。为此我们定义往

返时间(round trip time,简称RTT),它是一个小分组从客户主机游动到服务器主机再返回客户主机所花的时间。RTT包括分组传播延迟、在中间路由器和交换机土的分组排队延迟以及分组处理延迟。下面考虑用户点击某个超链接时会发生什么。用户的点击导致浏览器发起建立一个与Web服务器的TCP连接;这里涉及·—次“三次握手”过程——首先是客户向服务器发送一个小的冗余消息,接着是服务器向客户确认并响应以一个小的TCP消息,最后是客户向服务器回确认。三次握手过程的前两次结束时,流逝的时间为1个RTT。此时客户把HTTP请求消息发送到TCP连接中,客户接着把三次握手过程最后一次中的确认捎带在包含这个消息的数据分节中发送以去。服务器收到来自TCP连接的请求消息后,把相应的HTML文件发送到TCP连接中,服务器接着把对早先收到的客户请求的确认捎带在包含该HTML文件的数据分节中发送出去。这个HTTP请求顺应交互也花去1个RTT时间。因此,总的响应时间粗略地算是2个RTT加上服务器发送这个HTMI文件的时间。

持久连接

非持久连接有些缺点。首先,客户得为每个待请求的对象建立并维护一个新的连接。对于每个这样的连接,TCP得在客户端和服务器端分配TCP缓冲区,并维持TCP变量。对于有可能同时为来自数百个不同客户的请求提供服务的web服务器来说,这会严重增加其负担。其次,如前所述,每个对象都有2个RTT 的响应延长——一个RTT用于建立TCP连接,另—个RTT用于请求和接收对象。最后,每个对象都遭受TC P缓启动,因为每个TCP连接都起始于缓启动阶段。不过并行TCP连接的使用能够部分减轻RTT延迟和缓启动延迟的影响。

在持久连接情况下,服务器在发出响应后让TCP连接继续打开着。同一对客户/服务器之间的后续请求和响应可以通过这个连接发送。整个Web页面(上例中为包含一个基本HTMLL文件和10个图像的页面)自不用说可以通过单个持久TCP连接发送:甚至存放在同一个服务器中的多个web页面也可以通过单个持久TCP 连接发送。通常,HTTP服务器在某个连接闲置一段特定时间后关闭它,而这段时间通常是可以配置的。持久连接分为不带流水线(without pipelining)和带流水线(with pipelining)两个版本。如果是不带流水线的版本,那么客户只在收到前一个请求的响应后才发出新的请求。这种情况下,web页面所引用的每个对象(上例中的10个图像)都经历1个RTT的延迟,用于请求和接收该对象。与非持久连接2个RTT的延迟相比,不带流水线的持久连接已有所改善,不过带流水线的持久连接还能进一步降低响应延迟。不带流水线版本的另一个缺点是,服务器送出一个对象后开始等待下一个请求,而这个新请求却不能马上到达。这段时间服务器资源便闲置了。

HTTP/1.1的默认模式使用带流水线的持久连接。这种情况下,HTTP客户每碰到一个引用就立即发出一个请求,因而HTTP客户可以一个接一个紧挨着发出各个引用对象的请求。服务器收到这些请求后,也可以一个接一个紧挨着发出各个对象。如果所有的请求和响应都是紧挨着发送的,那么所有引用到的对象一共只经历1个RTT的延迟(而不是像不带流水线的版本那样,每个引用到的对象都各有1个RTT的延迟)。另外,带流水线的持久连接中服务器空等请求的时间比较少。与非持久连接相比,持久连接(不论是否带流水线)除降低了1个RTT的响应延迟外,缓启动延迟也比较小。其原因在于既然各个对象使用同一个TCP连接,服务器发出第一个对象后就不必再以一开始的缓慢速率发送后续对象。相反,服务器可以按照第一个对象发送完毕时的速率开始发送下一个对象。

HTTP消息格式

HTTP规范1.0[RPcl945]和1.1[RFC 2616]定义了HTTP消息的格式。HTTP消息分为请求消息和响应稍息两类。下面我们分别进行介绍。

HTTP请求消息

下面是一个典型的HTTP请求消息:

GET /somedir/page.html H7TP/1.1

Host:https://www.360docs.net/doc/f710298039.html,

Connection:close

User-agent:Mozilla/4.0

Accept-language:zh-cn

(额外的回车符和换行符)

仔细检查这个简单的请求消息,我们可从中学到不少东西。首先,这个消息是用普通的ASCII文本书写的。其次,这个消息共有5行(每行以一个回车符和一个换行符结束),最后一行后面还有额外的一个回车特和换行符。当然,一个请求消息可以不止这么多行,也可以仅仅只有一行。该请求消息的第一行称为请求行(request line),后续各行都称为头部行(header)。请求行有3个宁段:方法字段、URL字段、HTTP 版本宇段。方法字段有若干个值可供选择,包括GET、POST和HEAD。HTTP请求消息绝大多数使用GET方法,这是浏览器用来请求对象的方法,所请求的对象就在URL字段中标识。本例表明浏览器在请求对象/somed ir/page.html。版本字段是不言自明的;本例中浏览器实现的是HTTP/1.1版本。

现在看一下本例中的各个头部行。头部行Host:https://www.360docs.net/doc/f710298039.html,定存放所请求对象的主机。请求消息中包含头部Connection:close是在告知服务器本浏览器不想使用持久连接;服务器发出所请求的对象后应关闭连接。尽管产生这个请求消息的浏览器实现的是HTTP/1.1版本,它还是不想使用持久连接。Use r-agent头部行指定用户代理,也就是产生当前请求的浏览器的类型。本例的用户代理是Mozilla/4.0,它是Nelscape浏览器的一个版本。这个头部行很有用,因为服务器实际上可以给不同类型的用户代理发送同一个对象的不同版本(这些不同版本位用同一个URL寻址)。最后,Accept-languag:头部行指出要是所请求对象有简体中文版本,那么用户宁愿接收这个版本;如果没有这个语言版本,那么服务器应该发送其默认版本。Accept-languag:仅仅是HTTP的众多内容协商头部之一。

我们接着看一下下图所示的请求消息的一般格式。

图2:HTTP请求格式

上面的请求消息例子符合这个格式,不过一般格式中还有一个位于各个头部(及额外的回车符和换行符)之后的“附属体”(毗叮body)。附属体不在GET方法中使用,而是在POST方法中使用。POST方法适用于需由用户填写表单的场合,如往google搜索引擎中填入待搜索的词。用户提交表单后,浏览器就像用户点击了超链接那样仍然从服务器请求一个Web页面,不过该页面的具体内容却取决于用户填写在表单各个字段中的值。如果浏览器使用POST方法提出该请求,那么请求消息附属体中包含的是用户填写在表单各个字段中的值。与GET方法类似的是HEAD方法,两者的差别只是服务器在对HEAD方法的响应消息中去掉了所请求的对象,其他内容则与对GET方法的响应消息一样。HEAD方法通常用于HTTP服务器软件开发人员进行调试。

HTTP响应消息

下面是一个典型的HTTP响应消息:

HTTP/1.1 200 0K

Connectlon:close

Date: Thu, 13 Oct 2005 03:17:33 GMT

Server: Apache/2.0.54 (Unix)

Last—Nodified:Mon,22 Jun 1998 09;23;24 GMT

Content—Length:682l

Content—Type:text/html

(数据数据数据数据数据…………)

这个响应消息分为3部分:1个起始的状态行(status line),6个头部行、1个包含所请求对象本身的附属体。状态行有3个字段:协议版本字段、状态码字段、原因短语字段。本例的状态行表明,服务器使用HTTP/1.1版本,响应过程完全正常(也就是说服务器找到了所请求的对象,并正在发送)。

现在看一下本例中的各个头部行。服务器使用Connectlon:close头部行告知客户自己将在发送完本消息后关闭TCP连接。Date:头部行指出服务器创建并发送本响应消息的日期和时间。注意,这并不是对象本身的创建时间或最后修改时间,而是服务器把该对象从其文件系统中取出,插入响应消息中发送出去的时间。Server:头部行指出本消息是由Apache服务器产生的;它与HTTP请求消息中的User-agent:头部行类似。Last—Nodified:头部行指出对象本身的创建或最后修改日期或时间。Last—Nodified:头部对于对象的高速缓存至关重要,且不论这种高速缓存是发生在本地客户主机上还是发生在网络高速缓存服务器主机(也就是代理服务器主机)上。Content—Length:头部行指出所发送对象的字节数。Content—Type:头部行指出包含在附属体中的对象是HTML文本。对象的类型是由Content—Type:头部而不是由文件扩展名正式指出的。

注意,如果服务器收到一个HTTP/1.0的请求,那么它即使是一个HTTP/1.1服务器,也不会使用持久连接。相反,这样的HTTP/1.1服务器会在发出所请求的对象后关闭TCP连接。这么做是必要的,因为HTT P/1.0客户期待服务器马上关闭连接。

我们接着看一下如下图所示的响应消息的一般格式。前面的响应消息例子完全符合这个格式。响应消息中的状态码和原因短语指示相应请求的处理结果,下面列出了一些常见的状态码和相应的原因短语:

图3:响应消息的一般格式

●200 0K;请求成功,所请求信息在响应消息中返回。

●301 Moved Permanently:所请求的对象己永久性迁移;新的URL在本响应消息的Location:头部指出。客户软件会自动请求这个新的URL。

●400 Bad Request;表示服务器无法理解相应请求的普通错误的状态码

●404 Not Found:服务器上不存在所请求的文档。

●HTTP Versio n Not Support:服务器不支持所请求的HTTP协议版本。

你想如何看到一个真实的H1TP应答消息呢?这非常简单。可以使用nc工具连接到你喜欢的服务器(nc /netcat是一个黑客很喜欢用的工具,可以方便在主机之间建立TCP连接),然后输入一行请求消息,用来请求位于该服务器上的某个对象。例如,如果你可以输入以下指令:

nc https://www.360docs.net/doc/f710298039.html, 80

GET /index.shtml HTTP/1.0

(在输入第二行之后,敲两次回车),这就打开了一个到主机https://www.360docs.net/doc/f710298039.html,的端口80的TCP连接,然后发送HTTP GET命令。你应该能看到包含着YESKY主页的基本HTML文件的应苔消息。如果你想只看到HTTP消息行而不接收该对象本身,那么就把上面的GET换成HEAD。最后,看一下能得到什么样的应答消息。

在这里我们讨论了大量能够在HTTP请求和应答消息中使用的头部行。HTTP规范(尤其是HTTP/1.1)定义了更多可以由浏览器、Web服务器和网络缓冲服务器插入的头部行。

我们可以便用nc工具完全控制在请求消息中包含哪些头部,那么浏览器如何决定该在请求消息个包含哪些头部呢?Web服务器又是如何决定该在响应消息中包含哪些头部?浏览器是根据自己的用户代理类型、所支持的HTTP版本(HTTP/1.0版本的浏览器自然不会产生HTTP/1.1版本的头部)、用户对浏览器的配置(如所偏爱的语言)等因素生成请求消息中的各个头部的。web服务器有类似的情形:它们有不同的产品、版本和配置,所有这些因素都会影响在响应消息中包含哪些头部。

本文讨论过的和即将讨论的用于HTTP请求消息和响应消息中的头部仅仅是很小的一部分,HTTP规范中定义了更多可用的头部,可以查阅相关的RFC文档进行更详细的了解。

用户—服务器交互

身份认证和cookie

我们已经知道HTTP服务器是无状态的。这样的处理可以简化服务器程序的设计,以便开发出更高性能的Web服务器软件。然而,一个Web站点往往有标识其用户的需求,因为其web服务器可能希望限制用户的访问,也可能想要根据用户的身份来提供内容。HTTP提供了两种帮助服务器标识用户的机制:身份认证和cookle。

身份认证许多web站点要求用户提供一个用户名—口令对才能访问存放在其服务器中的文档。这种要求称为身份认证(authentication)。HTTP提供特殊的状态码和头部来帮助Web站点执行身份认证。我们通过查看一个例子来领会这些特殊的状态码和头部如何工作。假设有—个客户在请求来自某个服务器的一个对象,而该服务器要求用户授予权限。

客户首先发送一个不合特殊头部的普通请求消息。服务器以空的附属体和一个“401Authorization R equired”状态码作为响应。服务器还在这个响应消息中包含“个WWW-Authenticate:头部,说明具体如何执行身份认证。这个头部的典型值是指出用户需要提供一个用户名—口令对。

客户收到这个响应消息后提示用户输入用户名和口令,然后重新发送请求消息。这一回客户在请求消

息中包含了一个Authorization:头部,其中包含有用户输入的用户名和口令。

取得第一个对象后,客户在同为请求该服务器上对象的后续请求中继续发送这个用户名—口令对。这个做法一般将持续到用户关闭浏览器为止。在浏览器未被关闭之前,这个用户名—口令对是高速缓存着的,因此浏览器不会每请求一个对象就提示用户输入一次用户名和口令。通过上述方式,要求用户授权的Web 站点就能标识出每个请求的用户了。

我们需要知道,HTTP执行的是一种相当脆弱的身份认证方式,不难攻破。现代有很多更为安全的认证方式,我们会在以后介绍。

cookie是一种可让Web站点用来跟踪用户的候选机制,定义在RFC 2109中。有些Web站点使用cook ie,其他Web站点则不用。下面查看一个例子。假设一个客户首次联系一个使用cookie的web站点。服务器会在其响应中包含一个Set—Cookie:头部。该头部的值可以是一个由Web服务器产生的客户标识数.例如:

Set-Cookie:1678453

客户收到这个响应消息,看到其中的Set-Cookie:头部和标识数后,会在存放在客户主机中的某个特殊的cookie文件中添加一行。这一行一般包含服务器主机的主机名和这个与用户关联的标识数。在一段时间(如一个星期)之后请求同一个服务器时,由同一个用户启动的新客户会在请求消息中包含一个cookie头部,其值为早先由该服务器产生的标识数,例如:Cookie:1678453

在这种方式中,服务器并不知道提出请求的用户的用户名,但是它确实知道该用户与一个星期前提出请求的用户是同一个。

Web服务器有多个使用coohe的目的:

●如果服务器要求身份认证,但又不想在同一用户每次访问本Web站点时都麻烦他输入用户名和口令,那么可以设置一个cookie。

●如果服务器想要记住用户的偏好,以便在他们后续访问期间有目的地提供广告,那么可以设置一个cookie。

●如果web站点提供购物服务,那么服务器可以使用cookie跟踪用户购买的物品,就是建立一个虚拟的购物车。

需指出的是,cookie不适用于会从不同主机访问同一web站点的游动用户。这种情况下,该web站点会把同一个用户在不同主机上的使用看成是由新的用户执行的。

带条件的GET

Web高速缓存技术通过就近存取先前取得的对象来降低对象检索延迟,减少因特网上的web流量。Web 的高速缓存既可以驻留在客户主机中,也可以驻留在中间网络高速缓存服务器主机中。我们将在稍后讨论网络高速缓存,这里只关注客户的高速缓存。

Web高速缓存在降低用户可感知的响应时间的同时,却引入了一个新的问题——高速缓存中存放的对象的拷贝可能是过期的。换句话说,存放在web服务器中的对象可能己在客户高速缓存下它的一个拷贝之后被修改了。幸运的是,HTTP提供一个专门的机制,使得在允许客户进行高速缓存的同时,仍确保传递给浏览器的所有对象都是最新的。这个机制称为带条件的0ET(conditional GET)。满足条件(1)使用GET方法和(2)包含If-Modified-S1nce:头部的HTTP请求消息就是所谓的带条件的Get消息。

我们通过查看一个例子来说明带条件的GET如何工作,向服务器请求一个尚未高速缓存的对象:

GET /fruit/kiwi.gif HTTP/1.0

User—agent: Mozilla/4.0

接着,web服务器把带这个对象的一个响应消息发送给客户:

HTTP/1.0 200 OK

Date: Thu, 13 Oct 2005 05:33:47 GMT

Server: Apache/2.0.54 (Unix)

Last-Modified:Thu, 13 Oct 2005 02:32:47 GMT

Content-Type:image/gif

(数据数据数据数据数据……)

客户把这个对象显示给用户,同时把它保存在自己的本地高速缓存中客户还随该对象本身高速缓存最后修改日期与时间。一个星期之后,同一个用户请求同一个对象,而该对象仍然存放在高速缓存中。既然web服务器中的该对象有可能已在最近一个星期被修改过,于是浏览器发出一个带条件的GET消息,执行判定高速缓存的对象拷贝是否为最新的检查;

GET /fruit/kiwi.gif HTTP/1.0

User—agent: Mozilla/4.0

If—Modlfied—Since:Thu, 13 Oct 2005 02:32:47 GMT

其中,If—Modlfied—Since:头部的值就等于一个星期前由服务器发送的Last-Modified:头部的值。这个带条件的GET消息告知服务器,只有在该对象自所指定的时间以来被修改了的前提下才发送它。假设该对象在这段时间内未曾被修改过,那么服务器将发送一个附属体为空的响应消息给客户;

HTTP/1.0 304 Not Modified

Date: Thu, 20 Oct 2005 05:33:47 GMT

Server: Apache/2.0.54 (Unix)

我们看到,web服务器仍然发送——个响应消息作为带条件的GET消息的响应,不过其中不包含所请求的对象。包含该对象只会浪费带宽,并延长用户可感知的响应时间,特别是在该对象很大的时候。注意,这个响应消息的状态为“304 Not Modified”,它告知客户可以放心使用所请求对象的高速缓

HTTP协议的头信息详解

HTTP协议的头信息详解 HTTP协议的头信息详解 通常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指示对于单个用户的整个或部分响应消息,不能被共享缓存处理。这允许服务器仅仅描述当用户的部分响应消息,此响应消息对于其他用户的请求无效。no-cache指示请求或响应消息不能缓存no-store用于防止重要的信息被无意的发布。在请求消息中发送将使得请求和响应消息都不使用缓存。max-age指示客户机可以接收生存期不大于指定时间(以秒为单位)的响应。min-fresh指示客户机可以接收响应时间小于当前时间加上指定时间的响应。 max-stale指示客户机可以接收超出超时期间的响应消息。如果指定max-stale消息的值,那么客户机可以接收超出超时期指定值之内的响应消息。Date头域Date头域表示消息发送的时间,时间的描述格式由rfc822定义。例如,Date:Mon,31Dec200104:25:57GMT。Date描述的时间表示世界标准时,换算成本地时间,需要知道用户所在的时区。Pragma头域Pragma头域用来包含实现特定的指令,最常用的是Pragma:no-cache。在HTTP/1.1协议中,它的含义和Cache- Control:no-cache相同。请求消息请求消息的第一行为下面的格式:

http协议正文

竭诚为您提供优质文档/双击可除 http协议正文 篇一:http协议 http协议详解 引言 http是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。它于1990年 提出,经过几年的使用与发展,得到不断地完善和扩展。目前在www中使用的是http/1.0的第六版,http/1.1的规范 化工作正在进行之中,而且http-ng(nextgenerationofhttp)的建议已经提出。http协议的主要特点可概括如下: 1.支持客户/服务器模式。 2.简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有get、head、post。每种方 法规定了客户与服务器联系的类型不同。由于http协议简单,使得http服务器的程序规模小,因而通信速度很快。 3.灵活:http允许传输任意类型的数据对象。正在传输的类型由content-type加以标记。 4.无连接:无连接的含义是限制每次连接只处理一个请

求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。 5.无状态:http协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。 一、http协议详解之uRl篇 http(超文本传输协议)是一个基于请求与响应模式的、无状态的、应用层的协议,常基于tcp的连接方式,http1.1版本中给出一种持续连接的机制,绝大多数的web开发,都是构建在http协议之上的web应用。 httpuRl(uRl是一种特殊类型的uRi,包含了用于查找某个资源的足够的信息)的格式如下: http://host[":"port][abs_path] http表示要通过http协议来定位网络资源;host表示合法的internet主机域名或者ip地址;port指定一个端口号,为空则使用缺省端口80;abs_path指定请求资源的uRi;如果uRl中没有给出abs_path,那么当它作为请求uRi时,必须以“/”的形式给出,通常这个工作浏览器自动帮我们完成。eg: 1、输入:

标准日本语初级超详细笔记游荡的人修订

标准日本语初级超详细笔记(游荡的人修订) 12、常识 72、1、外来语 72、2、日语的音调(重音) 72、3、常用中国姓氏读法 82、4、常用日本姓氏读法 82、5、语法术语名称 92、6、日语词汇分类 92、7、地名的读法102、8、英文字母日语读法103、各种常用词1 13、1、数词和量词1 13、1、1、数词1 13、1、2、量词1 23、2、数量、顺序词汇的读法1 33、3、星期的表示1 33、4、日期表达法1 33、5、月份表达法1 43、6、四季表达法1 43、7、时分秒表达法1 43、8、其它时间相关表达法1

54、语法1

64、1、断句1 64、1、1、基本句型(肯定式)1 64、1、2、过去肯定式1 64、1、3、否定式1 64、1、4、过去判否定式1 64、1、5、将来推测式1 64、1、6、疑问式1 64、1、7、特殊疑问式1 74、1、8、中顿式1 74、2、存在句1 74、2、1、存在动词的含义1 74、2、2、存在动词的分工1 74、2、3、存在句句型1 84、3、愿望句式1 84、3、1、(第一人称+肚)…力'/总???Ar S / (第 一人称)想???1 84、3、2、(第一人称+ ?:)...力?/总...;七思X去丁。 / (第一人称)想 (1) 84、3、3、(第一人称 + 肚)?9/J: t 思C)去扌。 / (第一人称)想要 (1) 84、4、形容词1 84、4、1、词形特征1

84、4、2、词尾变化1 84、4、3、形容词的简体与敬体204、5、形容动词204、5、1、词形特征204、5、2、词尾变化(活用)204、5、3、判断助动词[吃]与形容动词词尾[疋]2 14、5、4、形容动词的简体、敬体及其应用2 14、6、动词2 14、6、1、动词分类2 14、6、2、动词的活用形2 24、6、3、授受关系动词及其用法2 74、6、4、动词的使役态、使役助动词」、使役句2 84、6、5、动词的被动态及被动助动词」2 94、6、6、可能态及可能动词3 14、7、助词、助动词3 24、7、1、提示助词血]3 24、7、2、提示助词[£]3 24、7、3、助词[力订3 24、7、4、领格助词[<D]3 24、7、5、终助词[力、]3 34、7、6、接续助词[T]3 34、7、7、提示助词血]3 34、7、8、接续助词[力心3 34、7、9、补格助词[J:门3

http协议请求响应报文格式及状态码详解

HTTP协议报文格式 HTTP协议(Hypertext Transfer Protocol――超文本传输协议)浏览器端(客户端)向WEB 服务器端访问页面的过程和HTTP协议报文的格式。 基于HTTP协议的客户机访问包括4个过程,分别是建立TCP套接字连接、发送HTTP请求报文、接收HTTP应答报文和关闭TCP套接字连接: 1. 创建TCP套接字连接 客户端与WEB服务器创建TCP套接字连接,其中WEB端服务器的地址可以通过域名解析确定,WEB端的套接字侦听端口一般是80。 2. 发送HTTP请求报文 客户端向WEB服务端发送请求报文,HTTP协议的请求报文格式为: 请求消息= 请求行(实体头信息)CRLF[实体内容] 请求行= 方法URL HTTP版本号CRLF 方法= GET|HEAD|POST|扩展方法 URL = 协议名称+宿主名+目录与文件名 其中"CRLF"表示回车换行。 "请求行"中的"方法"描述了对指定资源执行的动作,常用的方法"GET"、"HEAD"和"POST"等3种,它们的含义如表15-8所示: 请求报文 一个HTTP请求报文由请求行(request line)、请求头部(header)、空行和请求数据4个部分组成,下图给出了请求报文的一般格式。 (1)请求行 请求行由请求方法字段、URL字段和HTTP协议版本字段3个字段组成,它们用空格分隔。例如,GET /index.html HTTP/1.1。 HTTP协议的请求方法有GET、POST、HEAD、PUT、DELETE、OPTIONS、TRACE、CONNECT。这里介绍最常用的GET方法和POST方法。 GET:当客户端要从服务器中读取文档时,使用GET方法。GET方法要求服务器将URL定位的资源放在响应报文的数据部分,回送给客户端。使用GET方法时,请求参数和对应的值附加在URL后面,利用一个问号(“?”)代表URL的结尾 与请求参数的开始,传递参数长度受限制。例如,/index.jsp?id=100&op=bind。POST:当客户端给服务器提供信息较多时可以使用POST方法。POST方法将请求参数封装在HTTP请求数据中,以名称/值的形式出现,可以传输大量数据。 表15-8 HTTP请求方法

Http协议详解

引言 HTTP是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展。目前在WWW中使用的是HTTP/1.0的第六版,HTTP/1.1的规范化工作正在进行之中,而且HTTP-NG(Next Generation of HTTP)的建议已经提出。H TTP协议的主要特点可概括如下:1.支持客户/服务器模式。2.简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有GET、HEAD、POST。每种方法规定了客户与服务器联系的类型不同。由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很快。3.灵活:HTTP 允许传输任意类型的数据对象。正在传输的类型由Content-Type加以标记。4.无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。5.无状态:HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。 一、HTTP协议详解之URL篇 http(超文本传输协议)是一个基于请求与响应模式的、无状态的、应用层的协议,常基于TCP的连接方式,HTTP1.1版本中给出一种

持续连接的机制,绝大多数的Web开发,都是构建在HTTP协议之上的Web应用。 HTTP URL (URL是一种特殊类型的URI,包含了用于查找某个资源的足够的信息)的格式如下:h ttp://host[":"port][abs_path]http表示要通过HTTP协议来定位网络资源;host表示合法的Internet主机域名或者IP地址;port指定一个端口号,为空则使用缺省端口80;abs_path 指定请求资源的URI;如果URL中没有给出abs_path,那么当它作为请求URI时,必须以“/”的形式给出,通常这个工作浏览器自动帮我们完成。e g:1、输入:https://www.360docs.net/doc/f710298039.html,浏览器自动转换成:https://www.360docs.net/doc/f710298039.html,/2、http:192.168.0.116:8080/index.jsp 二、HTTP协议详解之请求篇 http请求由三部分组成,分别是:请求行、消息报头、请求正文1、请求行以一个方法符号开头,以空格分开,后面跟着请求的URI 和协议的版本,格式如下:Method Request-URI HTTP-Version CRLF 其中 Method表示请求方法;Request-URI是一个统一资源标识符;HTTP-Version表示请求的HTTP协议版本;CRLF表示回车和换行(除了作为结尾的CRLF外,不允许出现单独的CR或LF字符)。 请求方法(所有方法全为大写)有多种,各个方法的解释如下:GET 请求获取Request-URI所标识的资源P OST 在

《计算机的网络技术基础教程》课后习地的题目详解刘四清版

第一章 1.计算机网络是计算机技术与通信技术结合的产物。 2.“网络”主要包含连接对象、连接介质、连接控制机制、和连接方式与结构四个方面。 3.计算机网络最主要的功能是资源共享和通信,除此之外还有负荷均匀与分布处理和提高系统安全与可靠性能等功能。 4.计算机网络产生与发展可分为面向终端的计算机网络、计算机通信网络、计算机互联网络和高速互联网络四个阶段。 5.计算机网络基本组成主要包括计算机系统、通信线路和通信设备、网络协议和网络软件四部分。 6.计算机通信网络在逻辑上可分为资源子网和通信子网两大部分。 7.最常用的网络拓扑结构有总线型结构、环形结构、星型结构、树型结构、网状结构和混合型结构。 8.按照网络覆盖的地理范围大小,可以将网络分为局域网、城域网和广域网。 9.根据所使用的传输技术,可以将网络分为广播式网络和点对点网络。 10.通信线路分为有线和无线两大类,对应于有线传输和无线传输。 11.有线传输的介质有双绞线、同轴电缆和光纤。 12.无线传输的主要方式包括无线电传输、地面微波通信、卫星通信、红外线和激光通信。 问答: 1.例举计算机网络连接的主要对象。 具有独立功能的多台计算机、终端及其附属设备。 2.计算机网络是如何进行负荷均衡与分布处理的? 分为三阶段:提供作业文件;对作业进行加工处理;把处理结果输出。 在单机环境:三阶段在本地计算机系统中进行。 在网络环境:将作业分配给其他计算机系统进行处理,提高系统处理能力和高效完成大型应用系统的程序的计算和大型数据库的访问。 3.举例说明计算机网络在商业上的运用。 网络购物、网上银行、网上订票等。 4.简述什么是“通信子网”?什么是“资源子网”? 资源子网主要负责全网的数据处理,向网络用户提供各种网络资源与网络服务。由主计算机系统(主机)、终端、中断控制器、联网外设、各种软件资源与信息资源组成。 通信子网主要完成网络数据传输和转发等通信处理任务。通信子网由通信控制处理机(CCP)、通信线路和其他通信设备组成。 5.什么是点对点网络? 由许多相互连接的结点构成,在每对机器之间都有一条专用的通信信道,不存在信道的复用和共享。

日语 标日初级笔记

注意:出自大标书28课 四、授受动词 授受动词包含有“あげる”“もらう”“くれる”等。表示传递物品。分别有赠送者和接受者两方。 授受动词均为他动词。 1、あげる(我/我方给)(我/我方)は~に~をあげる 2、もらう(我/我方得到)(我/我方)は~に~をもらう 3、くれる(给我/我方)~は(我/我方)に~をくれる 注意:日语中你一般采用以说话人为助于进行叙述的说法。 例如【弟弟给老师苹果】这句中,弟弟,老师相比较;弟弟是我方关系人, 站在弟弟立场说为佳。 可以翻译成如下ニ句:1.先生は弟にリンゴをもらう 2.弟は先生にリンゴをあげる 很明显,用第二句为佳。 五、授受动词——传递动作篇 【V-て】——动词て形标志 1、V-てあげる(我/我方给)表示我或我方为他人做某事 (我/我方)は~に~をV-てあげる 例如:友達(ともだち)に英語(えいご)を教(おし)えてあげる。【我教朋友英语】 2、V-てもらう(我/我方得到)表示我或我方拜托他人做某事或得到别人给的动作 (我/我方)は~に~をV-てもらう 例如:母に辞書(じしょ)を買(か)ってもらった。【我让妈妈给我买字典】 3、V-てくれる(我/我方得到)表示他人为我或我方做某事。 ~は(我/我方)に~をV-てくれる 例如:妻(つま)が写真を送(おく)ってくれた。【妻子给我寄照片】 区別:【V-てもらう】与【V-てくれる】 【V-てもらう】偏向我方拜托他人做某事; 而【V-てくれる】偏向他人主动为我放做某事 例如:笑(わら)ってもらってよかった。【你笑了,太好了】 泣(な)いてくれてありがとう。【你为我哭泣,谢 出自大标书37课 一、幸(しあわ)せなら手(て)を叩(たた)こう【要是幸福的话就拍拍手吧】 「幸(しあわ)せ」——名词;「幸(しあわ)せだ」——ナ形容词 语法㈠、 【なら】——条件句标志;翻译为:要是…(的话) ——前接名词/ナ形容词词干/イ形容词和动词的简体 注意:所谓简体就是不含“ます”“です”的原型,否定形,过去形,过去否定形 1、怖(こわ)いなら、負(ま)けを認(みと)めましょう【要是害怕的话,就认输吧】 2、天安門(てんあんもん)に行くなら、地下鉄(ちかてつ)が便利(べんり)です。【要是去天安

计算机网络技术基础习题与答案

第三章计算机网络技术基础习题与答案 一、判断题 1.(√)网络节点和链路的几何图形就是网络的拓扑结构,是指网络中网络单元的地理分布和互联关系的几何构型。 2.(×)不同的网络拓扑结构其信道访问技术、网络性能、设备开销等基本相同,适合相同场合。 3.(×)计算机网络的拓扑结构主要是指资源子网的拓扑结构。 4.(√)总线型拓扑结构的网络结构简单、扩展容易,网络中的任何结点的故障都不会造成全网的故障,可靠性较高。 5.(×)星型网络的中心节点是主节点,具有中继交换和数据处理能力,网络结构简单,建网容易,可靠性好。 6.(√)环型网数据传输路径固定,没有路径选择的问题,网络实现简单,适应传输信息量不大的场合,但网络可靠性较差。 7.(√)树状网络是分层结构,适用于分级管理和控制系统,除叶节点及其连线外,任一节点或连线的故障均影响其所在支路网络的正常工作。 8.(√)当网络中各节点连接没有一定规则、地理位置分散,而设计通信线路是主要考虑的因素时,我们通常选用网状网络。 9.(√)总线型拓扑结构分单总线结构和多总线结构,局域网一般采用的是单总线结构。 10.(×)总线型拓扑结构的优点是电缆长度短、可靠性高、故障诊断和隔离容易和实时性强。 11.(×)星型网络拓扑结构集中控制,简单的访问协议,但电缆长度及安装费用高,故障诊断困难、扩展困难,全网工作依赖于中央节点。 12.(√)环型拓扑结构适合于光纤、网络实时性好,但网络扩展配置因难,故障诊断困难,节点故障则引起全网故障。 13.(√)树型拓扑结构易于扩展、故障隔离方便,但对根的依赖性太大,如果根发生故障则全网不能正常工作。 14.(×)网状型拓扑结构是将星型和总线型两种拓扑结构混合起来的一种拓扑结构。 15.(√)网状型拓扑结构的优点是易于扩展、故障的诊断和隔离方便、安装电缆方便。 16.(√)建立计算机网络的根本目的是实现数据通信和资源共享,而通信则是实现所有网络功能的基础和关键。 17.(√)OSI参考模型是一种将异构系统互连的分层结构,提供了控制互连系统交互规则的标准骨架。 18.(×)OSI参考模型定义了一种抽象结构,而并非具体实现的描述,直接的数据传送在传输层。 19.(×)OSI参考模型中,每一层的真正功能是为其下一层提供服务。 20.(√)OSI参考模型中的网络层,是通信子网与用户资源子网之间的接口,是控制通信子网、处理端到端数据传输的最低层。 21.(√)OSI参考模型中的传输层,接收由会话层来的数据,并向高层提供可靠的透明的数据传输,具有差错控制、流量控制及故障恢复功能。 22.(×)OSI参考模型中,数据传送包括语法和语义两个方面的问题,有关语义的处理由表示层负责,有关语法的处理由应用层负责。 23.(×)令牌传递控制法适用星状拓扑网络结构、基带传输。 24.(√)从本质上看,ATM技术是电路交换与分组交换技术相结合的一种高速交换技术。 25.(√)10BASE-T是双绞线以太网,使用两对非屏蔽双绞线,一对线发送数据,一对线接收数据,采用星型拓扑结构。

(完整word版)Http协议解说

Http协议:超文本传输协议 浏览器与服务端之间传输数据的协议,底层的传输协议为TCP。 Http则为应用层协议,负责定义传输数据的格式 HTTP协议分为1.0与1.1两个版本。现在常用为1.1版本。 协议规定客户端与服务端通讯方式为:一次请求一次响应,即:客户端发起请求,服务端接收到请求后向客户端发送响应。服务端不会主动发送内容 给客户端。采取“一问一答”的形式 HTTP 请求和响应分别定义了个格式。并且,无论是请求还是响应 中发送的字符(不含正文部分内容)都只能符合ISO8859-1编码字符(如:数字,字母,符号). 像中文等其它字符都需要经过处理后才可以发送。 HTTP请求格式: 一个HTTP请求分为三部分组成:请求行,消息头,消息正文 1:<请求行> 请求行分为三部分:

请求方法资源路径协议(CRLF) method(请求方法)url(资源路径) protocol(CRLF) 例如: GET /index.html HTTP/1.1(CRLF) 请求行以CRLF结束(回车加换行) CR:回车符,asc编码中对应数字13 LF:换行符,asc编码中对应数字10 2.<消息头> 消息头由若干行表示,每行表示一个具体的头信息,每个头信息式分为两部分: 消息头名字:消息头的值(CRLF) name: value(CRLF) 每个消息头都以CRLF结尾。 最后一个消息头结尾处会有两个CRLF,第一个表示最后一个消息头结束, 第二个表示消息头(整个)部分结束。 例如: Host: www.localhost:8080(CRLF) Connection: keep-alive(CRLF)

实验六利用Wireshark分析协议HTTP

实验六利用W i r e s h a r k分析协议H T T P 一、实验目的 分析HTTP协议 二、实验环境 与因特网连接的计算机,操作系统为Windows,安装有Wireshark、IE等软件。 三、实验步骤 1、利用Wireshark俘获HTTP分组 (1)在进行跟踪之前,我们首先清空Web 浏览器的高速缓存来确保Web网页是从网络中获取的,而不是从高速缓冲中取得的。之后,还要在客户端清空DNS高速缓存,来确保Web服务器域名到IP地址的映射是从网络中请求。在WindowsXP机器上,可在命令提示行输入ipconfig/flushdns(清除DNS解析程序缓存)完成操作。 (2)启动Wireshark 分组俘获器。 (3)在Web 浏览器中输入:https://www.360docs.net/doc/f710298039.html, (4)停止分组俘获。 图1.1 利用Wireshark俘获的HTTP分组 在URL https://www.360docs.net/doc/f710298039.html,中,https://www.360docs.net/doc/f710298039.html,是一个具体的web 服务器的域名。最前面有两个DNS分组。第一个分组是将域名https://www.360docs.net/doc/f710298039.html,

转换成为对应的IP 地址的请求,第二个分组包含了转换的结果。这个转换是必要的,因为网络层协议——IP协议,是通过点分十进制来表示因特网主机的,而不是通过https://www.360docs.net/doc/f710298039.html,这样的域名。当输入URL http://https://www.360docs.net/doc/f710298039.html, 时,将要求Web服务器从主机https://www.360docs.net/doc/f710298039.html,上请求数据,但首先Web浏览器必须确定这个主机的IP地址。 随着转换的完成,Web浏览器与Web服务器建立一个TCP连接。最后,Web 浏览器使用已建立好的TCP连接来发送请求“GET/HTTP/1.1”。这个分组描述了要求的行为(“GET”)及文件(只写“/”是因为我们没有指定额外的文件名),还有所用到的协议的版本(“HTTP/1.1”)。 2、HTTP GET/response交互 (1)在协议框中,选择“GET/HTTP/1.1” 所在的分组会看到这个基本请求行后跟随着一系列额外的请求首部。在首部后的“\r\n”表示一个回车和换行,以此将该首部与下一个首部隔开。 “Host”首部在HTTP1.1版本中是必须的,它描述了URL中机器的域名,本例中是https://www.360docs.net/doc/f710298039.html,。这就允许了一个Web服务器在同一时间支持许多不同的域名。有了这个数不,Web服务器就可以区别客户试图连接哪一个Web服务器,并对每个客户响应不同的内容,这就是HTTP1.0到1.1版本的主要变化。 User-Agent首部描述了提出请求的Web浏览器及客户机器。 接下来是一系列的Accpet首部,包括Accept(接受)、Accept-Language (接受语言)、Accept-Encoding(接受编码)、Accept-Charset(接受字符集)。它们告诉Web服务器客户Web浏览器准备处理的数据类型。Web服务器可以将数据转变为不同的语言和格式。这些首部表明了客户的能力和偏好。 Keep-Alive及Connection首部描述了有关TCP连接的信息,通过此连接发送HTTP请求和响应。它表明在发送请求之后连接是否保持活动状态及保持多久。大多数HTTP1.1连接是持久的(persistent),意思是在每次请求后不关闭TCP 连接,而是保持该连接以接受从同一台服务器发来的多个请求。 (2)我们已经察看了由Web浏览器发送的请求,现在我们来观察Web服务器的回答。响应首先发送“HTTP/1.1 200 ok”,指明它开始使用HTTP1.1版本来发送网页。同样,在响应分组中,它后面也跟随着一些首部。最后,被请求的实际数据被发送。

《标准日本语》_初级_上册_单词

大家论坛其他资料下载 早安日语共125课WORD 下载 原来这句日语这样说(共230多页PDF 下载) 标日初级超详细笔记WORD 共65页下载 标准日语表达-日语日常口语惯用表达(共100多页PDF 下载) 标准日语表达-日语日常口语副词精解(100多页PDF 下载) 现代交际日语书本共300多页下载 日语4级重点整理(PDF 下载) 日语3级重点整理(PDF 下载) 日语2级重点整理(pdf 共100页下载) 日语1级重点整理(pdf 共190多页下载) 日语语法口诀36首(共约193页PDF 下载) 初级日本语完全总结doc 版下载 日剧中出现频率较高的句子 闲聊日语. 无师自通日语900句 日语初级语法大全EXE 格式下载 新版中日交流标准日本语全笔记共70页WORD 下载 《标准日本语》 初级 上册 第1课 词汇Ⅰ わたし (0) [代] 我 会社員 (かいしゃいん) (3) [名] 公司职员 学生 (がくせい) (0) [名] 学生 (多指高等院校的学生) 留学生 (りゅがくせい) (4) [名] 留学生 初めまして (はじめまして) (4) [寒暄] 初次见面 (寒暄语) はい (1) [感] 是,是的 (应答声或用于回答) そう (1) [副] 那样 旅行社 (りょこうしゃ) (2) [名] 旅行社 社員 (しゃいん) (1) [名] 职员 あなた (2) [代] 你 いいえ (3) [感] 不,不是 (用于回答) 田中 (たなか) (0) [专] 田中 (姓氏) 日本 (にほん) (2) [专] 日本 王 (おう) (1) [专] 王 中国 (ちゅうごく) (1) [专] 中国 東京大学 (とうきょうだいがく) (5) [专] 东京大学 ~は ~です ~さん ~人 (じん) ~では ありません ~の ~か 词汇Ⅱ U n R e g i s t e r e d

HTTP协议报头信息详细讲解

对HTTP协议的头信息详解 HTTP(HyperTextTransferProtocol)是超文本传输协议的缩写,它用于传送WWW方式的数据,关于HTTP 协议的详细容请参考RFC2616。HTTP协议采用了请求/响应模型。客户端向服务器发送一个请求,请求头包含请求的方法、URI、协议版本、以及包含请求修饰符、客户信息和容的类似于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指示对于单个用户的整个或部分响应消息,不能被共享缓存处理。这允许服务器仅仅描述当用户的部分响应消息,此响应消息对于其他用户的请求无效。 no-cache指示请求或响应消息不能缓存 no-store用于防止重要的信息被无意的发布。在请求消息中发送将使得请求和响应消息都不使用缓存。 max-age指示客户机可以接收生存期不大于指定时间(以秒为单位)的响应。 min-fresh指示客户机可以接收响应时间小于当前时间加上指定时间的响应。 max-stale指示客户机可以接收超出超时期间的响应消息。如果指定max-stale消息的值,那么客户机可以接收超出超时期指定值之的响应消息。 Date头域

好听的日语句子--中日文对照

されることは幸福ではない。爱することこそ幸福だ。(ヘルマン?ヘッセ) 被爱不一定是幸福,去爱才真的幸福。 爱することにかけては、女性こそ専门家で、男性は永远に素人である。(三岛由纪夫)对於爱,女人往往是专家,而男人永远是外行。 安定は恋を杀し、不安は恋をかきたてる。(マルセル?ブルースト) 恋爱在安定中灭亡,在不安中升华。 男がどんな理屈を并べても、女の涙一滴にはかなわない。(ボルテール) 不管男人有如何道理,也敌不过女人的一滴眼泪。 男にとって爱は生活の一部だが、女にとって爱はその全部である。(バイロン) 对男人来说恋爱只不过是生活的一部分,对于女人来说爱就是生活的全部。 男は目で恋をし、女は耳で恋に落ちる。(ワイアット) 男人是用眼睛去爱的,但女人却由甜言蜜语而恋爱了。 恋の喜びは一瞬しか続かない。恋の悲しみは一生続く。(フロリアン) 恋爱的喜悦只是不持续的一瞬,而那悲哀却是一生相随。 恋人どうしのけんかは、恋の更新である。(テレンティウス) 对恋人们来说,吵嘴是爱的革新。 恋をして恋を失った方が、一度も恋をしなかったよりマシである。(テニソン) 勇敢的去爱,即使失败也总比一次也没爱过好强。 心がわりせぬことは、恋爱の妄想である。(ヴォーヴォナグル) 永不变心,不过是恋爱的美好愿望而已。 全ての场合を通じて、恋爱は忍耐である。(萩原朔太郎) 总的来说,所有的恋爱就是忍耐。 その女を手に入れる事ができない期间だけ、男はその女に热狂させられる。(キルケゴール) 只有在还没追到的时候,男人才对女人狂。 尊敬ということがなければ、真の恋爱は成立しない。(フィヒテ) 没有尊重对方的心,就没有真正的爱情。 男性は女性の最初の恋人になりたがるが、女性は男性の最后の恋人になりたがる。(オスカー?ワイルド) 男人总想是女人的初恋,而女人总想成为男人的最后一个爱人。 ひどく憎んでいる限り、まだいいくらか爱しているのである。(デズウリエール夫人)

HTTP协议分析

攀枝花学院计算机网络工程实训报告 HTTP协议分析 学生姓名:杨玉刚 学生学号: 200710801075 院(系):计算机学院 年级专业: 07计本2版 指导教师:范胜波 二〇一〇年六月

攀枝花学院本科学生课程设计任务书

攀枝花学院计算机网络工程实训报告 摘要 HTTP(Hyper Text Transfer Protocol)是超文本传输协议的缩写,它用于传送WWW方式的数据,关于HTTP协议的详细内容请参考RFC2616。HTTP协议采用了请求/响应模型。客户端向服务器发送一个请求,请求头包含请求的方法、URI、协议版本、以及包含请求修饰符、客户信息和内容的类似于MIME的消息结构。服务器以一个状态行作为响应,相应的内容包括消息协议的版本,成功或者错误编码加上包含服务器信息、实体元信息以及可能的实体内容。 通常HTTP消息包括客户机向服务器的请求消息和服务器向客户机的响应消息。这两种类型的消息由一个起始行,一个或者多个头域,一个只是头域结束的空行和可选的消息体组成。HTTP的头域包括通用头,请求头,响应头和实体头四个部分。每个头域由一个域名,冒号(:)和域值三部分组成。域名是大小写无关的,域值前可以添加任何数量的空格符,头域可以被扩展为多行,在每行开始处,使用至少一个空格或制表符 关键词HTTP协议,客户端,服务器, HTTP的头域

攀枝花学院计算机网络实训报告 目录 摘要 (Ⅰ) 1 前言 (1) 1.1 http协议简述 (1) 2 需求分析 (2) 2.1 http协议通信过程 (2) 2.1.1 URL自动解析 (2) 2.1.2 获取IP,建立TCP连接 (2) 2.1.3客户端浏览器向服务器发出HTTP请求 (2) 2.1.4 Web服务器应答,并向浏览器发送数据 (2) 2.1.5 Web服务器关闭TCP连接 (3) 2.1 HTTP的头域 (3) 2.1.1通用头域 (3) 2.1.2请求消息 (4) 2.1.3响应消息 (5) 2.1.4实体信息 (6) 3 系统设计 (7) 3.1 HTTP Analyzer工具介绍 (8) 3.2分析访问浏览器和服务器通信的过程 (8) 4 系统分析 (12) 4.1 HTTP 请求消息 (12) 4.1 HTTP 响应消息 (13) 结论 (15) 参考文献 (16) 附录 (17)

计算机网络技术基础个知识点

《计算机网络技术基础》200个知识点 1. 用一台计算机作为主机,通过通信线路与多台终端相连,构成简单的计算机连机系统。 2. 系统中所有数据处理都由主机完成,终端没有任何处理能力,仅起着字符输入、结果显示等作用。 3. 在大型主机-终端系统中,主机与每一台远程终端都用一条专用通信线路连接,线路的利用率较低。 4. ISO是国际标准化组织。 5. OSI/RM的全称是开放系统互连基本参考模型。 6. OSI/RM共有七层,因此也称为OSI七层模型。 7. 计算机网络是利用通信设备和线路把地理上分散的多台自主计算机系统连接起来,在相应软件(网络操作系统、网络协议、网络通信、管理和应用软件等)的支持下,以实现数据通信和资源共享为目标的系统。 8. 现代计算机网络能够实现资源共享。 9. 现代计算机网络中被连接的自主计算机自成一个完整的系统,能单独进行信息加工处理。 10. 计算机网络自主性是指连网的计算机之间不存在制约控制关系。 11. 计算机网络中计算机之间的互连通过通信设备及通信线路来实现。 12. 计算机网络要有功能完善的网络软件支持。 13. 计算机网络中各计算机之间的信息交换必须遵循统一的通信协议。 14. 一个计算机网络是由资源子网和通信子网构成。 15. 计算机网络的资源子网负责信息处理。 16. 通信子网由用作信息交换的通信控制处理机、通信线路和其他通信设备组成的独立的数据信息系统组成,它承担全网的数据传递、转接等通信处理工作。 17. 网络操作系统建立在各主机操作系统之上的一个操作系统,用于实现在不同主机系统之间的用户通信以及全网硬件和软件资源的共享,并向用户提供统一的、方便的网络接口,以方便用户使用网络。 18. 网络数据库系统可以集中地驻留在一台主机上,也可以分布在多台主机上。向网络用户提供存、取、修改网络数据库中数据的服务,以实现网络数据库的共享。 19. 计算机网络具有信息交换、资源共享、均衡使用网络资源、分布处理、数据信息的综合处理、提高计算机的安全可靠性的功能 20. 信息交换是计算机网络最基本的功能,主要完成计算机网络中各节点之间的系统通信。用户可以在网上收发电子邮件,发布新闻消息,进行电子购物、电子贸易、远程教育等。 21. 资源共享是指网络用户可以在权限范围内共享网中各计算机所提供的共享资源,包括软件、硬件和数据等。这种共享不受实际地理位置的限制。资源共享使得网络中分散的资源能够互通有无,大大提高了资源的利用率。它是组建计算机网络的重要目的之一。22. 在计算机网络中,如果某台计算机的处理任务过重,可通过网络将部分工作转交给较“空闲”的计算机来完成,均衡使用网络资源。 23. 对于较大型综合性问题的处理,可按一定的算法将任务分配给网络,由不同计算机进行分布处理,提高处理速度,有效利用设备。采用分布处理技术往往能够将多台性能不一定很高的计算机连成具有高性能的计算机网络,使解决大型复杂问题的费用大大降低。

标日初级总结笔记(句型篇)

4. 语法 4.1. 判断句 4.1.1. 基本句型(肯定式) …は(读wa)…です …是… 例:わたしは日本語専攻の一年生です。我是日语专业一年级学生。 4.1.2. 过去肯定式 …は…でした …(过去)是… 例:王さんは先生でした。老王以前是老师。 4.1.3. 否定式 …は…ではありません …不是… 例:これはわたしの本ではありません。这不是我的书。 4.1.4. 过去否定式 …は…ではありませんでした …(过去)不是… 例:きのうは日曜日ではありませんでした。昨天不是星期天。 4.1. 5. 将来推测式 …は…でしょう …(大概)是… 例:王さんも一年生でしょう。小王大概也是一年级学生吧。 4.1.6. 疑问式 判断句各句式 + か …吗(呢)? 例:あしたは休みではありませんか。明天不是休息日吗? 4.1.7. 特殊疑问式 疑问词成分 + が…(です)か …是…? 以疑问词成分作主语的问句叫特殊疑问句。与一般疑问句不同的是:主语必须用主格助词[が]表示,并且,其相应的答句主语也必须用[が]表示 例:だれが小林さんですか。 ---> わたしが小林です。 谁是小林? ---> 我就是小林。 4.1.8. 中顿式 …で,…(です) …是…,(是)… 一句话中间停顿打逗号时,[です]要用其中顿形式[で]

例:これはクラスの新聞で,先生のではありません。 这是班里的报纸,不是老师的。 4.2. 存在句 以存在动词[ある、いる、(おる)]作谓语的句子叫作存在句。存在动词的敬体形式为[あります、います] 4.2.1. 存在动词的含义 存在动词具有“有”和“在”两种含义。含义的区分,主要取决于动词前的助词,基本规律为: …があります(、います)/…有… …にあります(、います)/…在… 例:庭があります。/有(一个)院子。 庭にあります。/在院子里。 4.2.2. 存在动词的分工 存在动词[あります]和[います(おります)]分别用于不同场合,具体分工如下:あります——用于表示事、物 います——用于表示人、动物 おります——用于表示第一人称及相关场合,含自谦语气 例:きょう映画があります。/今天有电影。 犬と猫がいます。/有狗和猫。 土曜日なら家におります。/如果是星期六的话,我在家里。 4.2.3. 存在句句型 4.2.3.1. 表示“有”含义的基本句型 …に(は)…があります(或います)/在…有… …には…はありません(或いません)/在…没有…(は用于加强否定语气) 例:庭にきれいな花や木があります。/在院子里有美丽的花和树木。 テーブルの上には果物はありません。/(在)桌子上没有水果。 4.2.3.2. 表示"在"含义的基本句型 …が(或は)…にあります(或います)/…在… …は…にはありません(或いません)/…不在…(は用于加强否定语气) 例:猫が居間にいます。/猫在客厅里。 田中さんは映画館にはいません。/田中先生不在电影院。 4.3. 愿望句式 愿望句式通常由愿望助动词「たい」、动词推量形加推量助动词「う?よう」以及在「たい」、「う?よう」之后加动词「と思う」构成。现代日语中常见的愿望句式有三种。 4.3.1. (第一人称 + は)…が/を…たいです。/(第一人称)想… 例:わたしたちは日本語を勉強したいです。 / 我们想学日语。 (わたしは)テレビが見たいです。 / 我想看电视。 4.3.2. (第一人称 + は)…が/を…たいと思います。/(第一人称)想…

HTTP协议解析

文章来源:网络转载点击数:1148 更新时间:2009-9-14 10:35:27 字体:[大中小] 收藏到: HTTP协议详解 掌握HTTP虽然不是必须的,但是如果你知道它的工作原理,那么在学习JSP开发中的某些知识就可以易如反掌了。 一,HTTP协议详解之URL篇 http(超文本传输协议)是一个基于请求与响应模式的、无状态的、应用层的协议,常基于TCP的连接方式,HTTP1.1版本中给出一种持续连接的机制,绝大多数的Web开发,都是构建在HTTP协议之上的Web应用。 HTTP URL (URL是一种特殊类型的URI,包含了用于查找某个资源的足够的信息)的格式如下:http://host[":"port][abs_path] http 表示要通过HTTP协议来定位网络资源;host表示合法的Internet主机域名或者IP地址;port 指定一个端口号,为空则使用缺省端口80;abs_path指定请求资源的URI;如果URL中没有给出abs_path,那么当它作为请求URI时,必须以“/”的形式给出,通常这个工作浏览器自动帮我们完成。eg: 1、输入:https://www.360docs.net/doc/f710298039.html, 浏览器自动转换成:https://www.360docs.net/doc/f710298039.html,/ 2、http:192.168.0.116:8080/index.jsp 二、HTTP协议详解之请求篇 http请求由三部分组成,分别是:请求行、消息报头、请求正文 1、请求行以一个方法符号开头,以空格分开,后面跟着请求的URI和协议的版本,格式如下:Method Request-URI HTTP-Version CRLF 其中Method表示请求方法;Request-URI是一个统一资源标识符;HTTP-Version表示请求的HTTP 协议版本;CRLF表示回车和换行(除了作为结尾的CRLF外,不允许出现单独的CR或LF字符)。请求方法(所有方法全为大写)有多种,各个方法的解释如下: GET 请求获取Request-URI所标识的资源 POST 在Request-URI所标识的资源后附加新的数据 HEAD 请求获取由Request-URI所标识的资源的响应消息报头 PUT 请求服务器存储一个资源,并用Request-URI作为其标识 DELETE 请求服务器删除Request-URI所标识的资源 TRACE 请求服务器回送收到的请求信息,主要用于测试或诊断 CONNECT 保留将来使用 OPTIONS 请求查询服务器的性能,或者查询与资源相关的选项和需求 应用举例: GET方法:在浏览器的地址栏中输入网址的方式访问网页时,浏览器采用GET方法向服务器获取资源,eg:GET /form.html HTTP/1.1 (CRLF) POST方法要求被请求服务器接受附在请求后面的数据,常用于提交表单。 eg:POST /reg.jsp HTTP/ (CRLF) Accept:image/gif,image/x-xbit,... (CRLF) ...

相关文档
最新文档