第3章HTTP与HTML2011.ppt

上传人:本田雅阁 文档编号:3502221 上传时间:2019-09-04 格式:PPT 页数:72 大小:495.05KB
返回 下载 相关 举报
第3章HTTP与HTML2011.ppt_第1页
第1页 / 共72页
第3章HTTP与HTML2011.ppt_第2页
第2页 / 共72页
第3章HTTP与HTML2011.ppt_第3页
第3页 / 共72页
第3章HTTP与HTML2011.ppt_第4页
第4页 / 共72页
第3章HTTP与HTML2011.ppt_第5页
第5页 / 共72页
点击查看更多>>
资源描述

《第3章HTTP与HTML2011.ppt》由会员分享,可在线阅读,更多相关《第3章HTTP与HTML2011.ppt(72页珍藏版)》请在三一文库上搜索。

1、第三章 HTTP与HTML,万维网标准,万维网的核心部分是由三个标准构成的: 统一资源标识符(URI),这是一个世界通用的负责给万维网上例如网页这样的资源定位的系统。 超文本传送协议(HTTP),它负责规定浏览器和服务器怎样互相交流。 超文本标记语言(HTML),作用是定义超文本文档的结构和格式。 蒂姆伯纳斯-李现在是万维网联盟(W3C)的领导人,这个组织的作用是使计算机能够在万维网上不同形式的信息间更有效的储存和通信。,万维网工作原理,首先在浏览器上键入想访问网页的统一资源定位符(Uniform Resource Locator),或者通过超链接方式链接到那个网页或网络资源。这之后的工作首先

2、是URL的服务器名部分,被名为域名系统的分布于全球的因特网数据库解析,并根据解析结果决定进入哪一个IP地址(IP address)。 接下来为所要访问的网页,向在那个IP地址工作的服务器发送一个HTTP请求。在通常情况下,HTML文本、图片和构成该网页的一切其他文件很快会被逐一请求并发送回用户。,万维网工作原理,网络浏览器接下来的工作是把HTML、CSS和其他接受到的文件所描述的内容,加上图像、链接和其他必须的资源,显示给用户。这些就构成了所看到的“网页”。 大多数的网页自身包含有超链接指向其他相关网页,可能还有下载、源文献、定义和其他网络资源。像这样通过超链接,把有用的相关资源组织在一起的集

3、合,就形成了一个所谓的信息的“网”。,Web浏览器,第一个图形化界面的Web浏览器是Mosaic 。 Web浏览器的基本功能是导航和浏览。导航是根据给定的超链接在Web中穿梭航行并从Web服务器上获取Web页;浏览是解释和显示Web页。导航是执行HTTP协议;浏览是解释HTML语言。 为方便用户,大多数浏览器都提供一些标准的控制按钮;为改进性能,有些浏览器把已访问过的Web页在本机缓存。 任何Web浏览器都可以让用户打开一个URL.,浏览器的结构,控制器,HTML 解释器,可选 解释器,可选客户,HTML 客户,浏览器的演化,HTTP 0.9 HTTP 1.0 HTTP 1.1 HTTP-NG

4、,超文本传输协议HTTP,HTTP协议的几个重要概念,1.连接(Connection):一个传输层的实际环流,它是建立在两个相互通讯的应用程序之间。 2.消息(Message):HTTP通讯的基本单位,包括一个结构化的八元组序列并通过连接传输。 3.请求(Request):一个从客户端到服务器的请求信息包括应用于资源的方法、资源的标识符和协议的版本号 4.响应(Response):一个从服务器返回的信息包括HTTP协议的版本号、请求的状态(例如“成功”或“没找到”)和文档的MIME类型。 5.资源(Resource):由URI标识的网络数据对象或服务。,HTTP协议的几个重要概念,6.实体(E

5、ntity):数据资源或来自服务资源的回映的一种特殊表示方法,它可能被包围在一个请求或响应信息中。一个实体包括实体头信息和实体的本身内容。 7.客户机(Client):一个为发送请求目的而建立连接的应用程序。 8.用户代理(User agent):初始化一个请求的客户机。它们是浏览器、编辑器或其它用户工具。 9.服务器(Server):一个接受连接并对请求返回信息的应用程序。 10.源服务器(Origin server):是一个给定资源可以在其上驻留或被创建的服务器。,HTTP协议的几个重要概念,11.代理(Proxy):一个中间程序,它可以充当一个服务器,也可以充当一个客户机,为其它客户机建

6、立请求。请求是通过在内部可能的翻译并传递到其它的服务器中。一个代理在发送请求信息之前,必须解释并且如果可能重写它。代理经常作为通过防火墙的客户机端的门户,代理还可以作为一个帮助应用来通过协议处理没有被用户代理完成的请求。 12.网关(Gateway):一个作为其它服务器中间媒介的服务器。与代理不同的是,网关接受请求就好象对被请求的资源来说它就是源服务器;发出请求的客户机并没有意识到它在同网关打交道。网关经常作为通过防火墙的服务器端的门户,网关还可以作为一个协议翻译器以便存取那些存储在非HTTP系统中的资源。 13.通道(Tunnel):是作为两个连接中继的中介程序。一旦激活,通道便被认为不属于

7、HTTP通讯,尽管通道可能是被一个HTTP请求初始化的。当被中继的连接两端关闭时,通道便消失。当一个门户(Portal)必须存在或中介(Intermediary)不能解释中继的通讯时经常使用通道。 14.缓存(Cache):反映信息的局域存储。,超文本传输协议HTTP(一),HTTP协议使Web服务器和浏览器可以通过Web交换数据。它是一种请求/响应协议,即服务器等待并响应客户方请求。请求与响应以ASCII编码的明文形式交换。 HTTP是一种无状态协议,它不维护连接的状态信息。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传

8、送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。 HTTP专用于访问网络上的分布式超媒体信息。它可用于基本的通信目的,例如网络文件、邮件或新闻的传送。,超文本传输协议HTTP(二),被访问的超媒体信息称为资源,由明确的统一资源标识符(URI)统一编址。 HTTP连接建立在每一对客户和服务器之间。客户发出的请求,被服务器接受、处理并应答。服务器可以是源服务器,也可以是代理服务器。,客户/服务器传输过程,浏览器与服务器建立连接 与服务器建立连接,就是与SOCKET建立连接,因此要指定机器名称、资源名称和断口号,可以通过URL来提供这些信息。URL的格式为: HTTP:/端口号/路

9、径? 资源的缺省值是INDEX或DEFAULT,断口号缺省为80. 浏览器向服务器请求文档 请求信息包括希望返回的文件名和客户机信息。客户机信息以请求头发送给服务器,请求头包括HTTP请求方法和头字段,HTTP方法常用的有GET、HEAD、POST 。 服务器响应浏览器请求 服务器收到一个请求,就会立刻解释请求中所用到的方法,并开始处理应答。服务器的应答消息也包含头字段形式的报文信息。 断开连接,Internet,Web浏览器,Web服务器,代理服务器,请求,请求,应答,应答,超文本传输协议HTTP(三),请求或响应报文头有零个、一个或多个头字段,构造成通用、请求、响应和实体字段。 通用字段对

10、请求消息和响应消息都适用; 请求字段给出了有关请求和客户本身的额外信息; 响应字段传送有关服务器和进一步访问被请求资源的信息。,超文本传输协议HTTP(四),消息体(如果有的话)携带了一个资源实体。资源一般位于某个源服务器上,它可以是任何超媒体信息对象,例如静态HTML页面;或者是某个服务,例如产生HTML页面的公共网关接口(CGI)程序。这两种情况下,HTML页面如果由客户与服务器之间的消息体传送,则称为(资源)实体。,HTTP的通信模型,HTTP请求 GET / HTTP/1.1 Host: OPTIONS GET HEAD POST PUT DELETE TRACE,超文本传输协议HT

11、TP(五),响应请求 状态行 HTTP/HTTP Version Status Code Space 状态代码 信息 1 成功 2 重定向 3 客户机错误 4 服务器错误 5,超文本传输协议HTTP(六),HTTP 实验,telnet set localecho open 127.0.0.1 80 HEAD /Index.html HTTP/1.1 Host: 127.0.0.1 GET /Index.html HTTP/1.1 Host: 127.0.0.1,HTTP 实验,open 80 HEAD / HTTP/1.1 host: HTTP/1.1 200 OK Content-Len

12、gth: 16975 Content-Type: text/html Content-Location: http:/ Last-Modified: Thu, 24 Feb 2011 13:52:50 GMT Accept-Ranges: bytes ETag: “8c271202ad4cb1:893“ Server: Microsoft-IIS/6.0 Date: Mon, 28 Mar 2011 11:26:02 GMT,HTTP 实验,HEAD / HTTP/1.1 Connection: close host: HTTP/1.1 200 OK Content-Length: 1697

13、5 Content-Type: text/html Content-Location: http:/ Last-Modified: Thu, 24 Feb 2011 13:52:50 GMT Accept-Ranges: bytes ETag: “8c271202ad4cb1:893“ Server: Microsoft-IIS/6.0 Date: Mon, 28 Mar 2011 11:26:30 GMT Connection: close,Cookie,指某些网站为了辨别用户身份而储存在用户本地终端(Client Side)上的数据(通常经过加密)。定义于RFC2109。为网景公司的前雇员

14、Lou Montulli在1993年3月所发明。 Cookie可以保持登录信息到用户下次与服务器的会话,换句话说,下次访问同一网站时,用户会发现不必输入用户名和密码就已经登录了(当然,不排除用户手工删除Cookie)。而还有一些Cookie在用户退出会话的时候就被删除了,这样可以有效保护个人隐私。,Cookie,指某些网站为了辨别用户身份而储存在用户本地终端(Client Side)上的数据(通常经过加密)。定义于RFC2109。为网景公司的前雇员Lou Montulli在1993年3月所发明。 Cookie可以保持登录信息到用户下次与服务器的会话,换句话说,下次访问同一网站时,用户会发现不必

15、输入用户名和密码就已经登录了(当然,不排除用户手工删除Cookie)。而还有一些Cookie在用户退出会话的时候就被删除了,这样可以有效保护个人隐私。,Cookie,正统的cookie分发是通过扩展HTTP协议来实现的,服务器通过在HTTP的响应头中加上一行特殊的指示以提示浏览器按照指示生成相应的cookie。然而纯粹的客户端脚本如JavaScript或者VBScript也可以生成cookie。,Cookie,cookie的使用是由浏览器按照一定的原则在后台自动发送给服务器的。浏览器检查所有存储的cookie,如果某个cookie所声明的作用范围大于等于将要请求的资源所在的位置,则把该cook

16、ie附在请求资源的HTTP请求头上发送给服务器。,Cookie,cookie的内容主要包括:名字,值,过期时间,路径和域。 其中域可以指定某一个域比如 路径就是跟在域名后面的URL路径,比如/或者/foo等等 路径与域合在一起就构成了cookie的作用范围,Cookie,如果不设置过期时间,则表示这个cookie的生命期为浏览器会话期间,只要关闭浏览器窗口,cookie就消失了。这种生命期为浏览器会话期的cookie被称为会话cookie。会话cookie一般不存储在硬盘上而是保存在内存里,当然这种行为并不是规范规定的。如果设置了过期时间,浏览器就会把cookie保存到硬盘上,关闭后再次打开浏

17、览器,这些cookie仍然有效直到超过设定的过期时间。,Cookie,下面就是一个goolge设置cookie的响应头的例子 HTTP/1.1 302 Found Location: http:/ Set-Cookie: PREF=ID=0565f77e132de138:NW=1:TM=1098082649:LM=1098082649:S=KaeaCFPo49RiA_d8; expires=Sun, 17-Jan-2038 19:14:07 GMT; path=/; domain= Content-Type: text/html,Session,含义是指一类用来在客户端与服务器之间保持状态的解

18、决方案。 有时候session也用来指这种解决方案的存储结构,如“把xxx保存在session里” 。 由于各种用于web开发的语言在一定程度上都提供了对这种解决方案的支持,所以在某种特定语言的语境下,session也被用来指代该语言的解决方案,比如经常把Java里提供的javax.servlet.http.HttpSession简称为session,Session,cookie机制采用的是在客户端保持状态的方案,而session机制采用的是在服务器端保持状态的方案 session机制是一种服务器端的机制,服务器使用一种类似于散列表的结构(也可能就是使用散列表)来保存信息。,Session,当

19、程序需要为某个客户端的请求创建一个session的时候,服务器首先检查这个客户端的请求里是否已包含了一个session标识 - 称为session id,如果已包含一个session id则说明以前已经为此客户端创建过session,服务器就按照session id把这个session检索出来使用(如果检索不到,可能会新建一个),如果客户端请求不包含session id,则为此客户端创建一个session并且生成一个与此session相关联的session id,session id的值应该是一个既不会重复,又不容易被找到规律以仿造的字符串,这个session id将被在本次响应中返回给客户端

20、保存。,Session,保存这个session id的方式可以采用cookie,这样在交互过程中浏览器可以自动的按照规则把这个标识发挥给服务器。一般这个cookie的名字都是类似于SEEESIONID,比如weblogic对于web应用程序生成的cookie,JSESSIONID=ByOK3vjFD75aPnrF7C2HmdnV6QZcEbzWoWiBYEnLerjQ99zWpBng!-145788764,它的名字就是JSESSIONID。,Session,由于cookie可以被人为的禁止,必须有其他机制以便在cookie被禁止时仍然能够把session id传递回服务器。经常被使用的一种技术

21、叫做URL重写,就是把session id直接附加在URL路径的后面,附加方式也有两种,一种是作为URL路径的附加信息,表现形式为http:/./xxx;jsessionid=ByOK3vjFD75aPnrF7C2HmdnV6QZcEbzWoWiBYEnLerjQ99zWpBng!-145788764,Session,或者作为查询字符串附加在URL后面,表现形式为http:/./xxx?jsessionid=ByOK3vjFD75aPnrF7C2HmdnV6QZcEbzWoWiBYEnLerjQ99zWpBng!-145788764,Session,另一种技术叫做表单隐藏字段。就是服务器会自动

22、修改表单,添加一个隐藏字段,以便在表单提交时能够把session id传递回服务器。比如下面的表单 ,Session,在被传递给客户端之前将被改写成 ,Session,在谈论session机制的时候,常常听到这样一种误解“只要关闭浏览器,session就消失了”。 对session来说,除非程序通知服务器删除一个session,否则服务器会一直保留,程序一般都是在用户做log off的时候发个指令去删除session。然而浏览器从来不会主动在关闭之前通知服务器它将要关闭,因此服务器根本不会有机会知道浏览器已经关闭,之所以会有这种错觉,是大部分session机制都使用会话cookie来保存ses

23、sion id,而关闭浏览器后这个session id就消失了,再次连接服务器时也就无法找到原来的session。如果服务器设置的cookie被保存到硬盘上,或者使用某种手段改写浏览器发出的HTTP请求头,把原来的session id发送给服务器,则再次打开浏览器仍然能够找到原来的session。,Session,由于关闭浏览器不会导致session被删除,迫使服务器为seesion设置了一个失效时间,当距离客户端上一次使用session的时间超过这个失效时间时,服务器就可以认为客户端已经停止了活动,才会把session删除以节省存储空间。,HTTP1.1 改 进,HTTP版本1.0为从服务器

24、取出的每个数据项建立一条单独的TCP连接。 最新的HTTP版本1.1的最重要改进是它采用持续连接,还能处理MIME类型的消息,定义了一个复杂的高速缓存 。 目前正在研究新一代HTTP协议 。,持续连接 (persistent-connection),优点: 可以明显地消除连接建立的开销,减轻服务器的负载; 客户可以在一个TCP连接上发送大量的请求消息,TCP的拥塞窗口机制可以更高效地工作。 缺点: 客户和服务器都不知道将一个TCP连接保持多久 解决措施:当服务器在一条连接上有一段时间没有收到请求,它就将这条连接超时,关闭连接;或者客户和服务器都必须注意另一端是否决定关闭连接,并以此为信号也关闭

25、己端的连接(双方都必须关闭连接之后连接才完全结束)。,Web中的MIME,MIME(Multipurpose Internet Mail Extensions,多用途互联网邮件扩展 )在Web中用于指定大量数据的类型(如文件或Web页面)。MIME使用户可发送多种格式的数据,而不单单是文本数据。由于使用了MIME,用户可以发送和接收包含非ASCII码数据如声音、视频、图像应用等的页面。当Web浏览器与服务器建立连接时,它们协商MIME类型。浏览器向服务器发送它所能接收的MIME类型,这部分信息位于请求头中。服务器通知客户方它发送的数据包含的MIME类型.,Web中的MIME,超文本标记语言HT

26、ML,HTML成为Web中最通用的语言 HTML是所有浏览器都可以理解的标准语言 HTML与平台无关,便于移植 HTML是一个简单的标记语言,它可以描述Web文档的版面,但主要是用来描述Web文档的结构。含有HTML元素的文件(文档),定义了网页是如何出现在浏览器中的。,例如:,通过浏览器浏览网页时,用户可以看见以下各种内容: 直接文本 标题一 图片或动画 与另一HTML文档的链接 Prentice Hall ,HTML 标 签, . . . 信息. . . 有些标签需要开始和结束定界符。它们都含有标签标识符,但结束符还包含字符/ 。 如: 标题一 在有些情况下,开始符中指定的选项提供了附加信

27、息。 如: ,HTML 标 签,字体标签 字体标签给出元素的显示状态,如黑体文本,规定字体 结构标签 结构标签描述文档的各个部分:头、章节、段落、表格、图象、超链接等,HTLM 4.0 & 5.0,HTML 4.0 DHTML HTML 5.0,学习HTML的最快方法是 阅读Web页的源码,Web文档的分类,Internet上的web信息都是以文档的形式存在,这些文档都相互链接。根据文档内容的确定时间,所有文档可分为三类:静态、动态、活动。,Web程序的分类,在服务器执行 服务器方应用是用来扩展服务器功能的程序,与Web服务器进程一起运行。 在浏览器执行 由浏览器执行的是脚本(script),

28、它一般嵌在HTML文档中,下载到客户端主机,由浏览器执行。 脚本和程序的区别在于脚本是通过命令解释器一行一行执行,而程序是编译后执行。,静态文档,静态文档是一个存储于web服务器的文件,静态文档的作者在创建文档的时候决定文档的内容,对文档的每次访问都返回相同的结果。 静态文档的实现:HTML,其文件后缀为:htm或html。,静态文档,优点 简单,直接指定格式 ; 可靠 ,经创建和测试之后,静态文档永远是正确的 ; 高效,浏览器可以快速存取文档,同时通过把文档放在本地盘上的缓冲区内以加快以后对这些文档的访问速度 。 缺点 不灵活 ,当信息变化时文档必须重新设计 ,人工修改,耗费时间。,动态文档

29、,动态文档在浏览器访问web服务器时创建。当一个请求到达时,web服务器运行一个应用程序创建动态文档,服务器返回程序的输出作为对访问的应答。每次访问时,动态文档的内容是变化的。 动态文档产生方法:CGI、ASP、PHP,后缀分别为:.cgi、.asp、.php。,优点 报告实时信息 ; 任务放在服务器端,浏览器采用和静态文档同样的方法访问动态文档 。 缺点 成本增加,创建者必须懂得如何写程序,程序必须仔细编写和广泛测试 ,硬件成本也较高 ; 不能显示变化的信息,在浏览器取得文档后不会再改变。,动态文档,处理动态文档的Web服务器 必备条件,服务器程序必须扩展,当请求到达时,能够执行一个单独的创

30、建文档的应用程序。服务器必须能够捕获应用程序的输出,并且将该文档返回给浏览器; 必须为每个动态文档写一个单独的应用程序; 服务器必须配置成能够知道哪一个URL对应于动态文档和哪一个URL对应于静态文档。对每个动态文档,配置时必须说明产生文档的应用程序。,CGI,公共网关接口CGI(Common Gateway Interface)提供了通用的接口,但并不限定编程语言,可以使用任何一种你熟悉的高级语言,如 C,C+,C shell和VB 来编写。 CGI程序的典型用法是从Web页面上获取信息,处理这些信息然后向用户提供他所需的信息。 关于CGI的详细信息,参见http:/www.w3c.org/

31、CGI,Web 服务器,Web 浏览器,CGI,环境变量,请求,回答,调用,结果,设置,读取,使用CGI的示意图,活动文档,一个活动文档可以和用户交互执行并不停地改变显示,只要用户一直让文档运行,他们就可以不断变化。活动文档的信息在文档调到浏览器一端后改变。 活动文档的实现:Server Push、Java applet、JavaScript、DHTML,优点 持续更改信息 ; 直接访问信息源并连续更改显示 。 缺点 创建和运行这种文档所需的额外费用, 不同客户上的兼容性问题 缺少安全性,文档既输入信息又输出信息。,活动文档,JavaScript,JavaScript是一种基于对象的、事件驱动

32、的脚本语言。它是第一个客户端脚本语言。 JavaScript作为一门动态语言,集过程式、对象式、函数式、事件驱动式和元编程于一身,其强大和优雅绝对是超乎想象的。它宛如一只神奇的魔袋,乍看平淡无奇,却总能变出意想不到的宝贝。,JavaScript,JavaScript的优点是简单易用,局限性是速度慢、可扩展性差(跟安全性相关的局限性:不能将数据存储在web服务器或用户计算机上,更不能访问用户计算机上的文件)。 JavaScript代码是以和标签定界的。,Web缓存技术,缓存可以在不同的地方实现: 用户的浏览器可以缓存最近访问过的页 代理缓存 缓存Web页的能力 HTTP 使之变得容易 关键是缓存

33、必须确保不会响应过期的页,安全信息机制,安全套接层(Secure Socket Layer,SSL) 加强连接的安全 基于SSL的服务器用https取代http 安全HTTP(S-HTTP) 加强发送信息的安全,安全套接层SSL,由于Web上有时要传输重要或敏感的数据,为保证客户和服务器两个应用间通信的保密性和可靠性,Netscape公司在推出Web浏览器首版的同时,提出了安全通信协议SSL(Secure Socket Layer),目前已有2.0和3.0版本。 SSL协议已成为Internet上保密通讯的工业标准。现行Web浏览器普遍将HTTP和SSL相结合,从而实现安全通信。,SSL的安全性,SSL协议的优势在于它是与应用层协议独立无关的。高层的应用层协议(例如:HTTP,FTP,TELNET等)能透明的建立于SSL协议之上。SSL协议在应用层协议通信之前就已经完成加密算法、通信密钥的协商以及服务器认证工作。在此之后应用层协议所传送的数据都会被加 密,从而保证通信的私密性。 SSL协议提供的安全信道有以下三个特性: 私密性。因为在握手协议定义了会话密钥后,所有的消息都被加密。 确认性。因为尽管会话的客户端认证是可选的,但是服务器端始终是被认证的。 可靠性。因为传送的消息包括消息完整性检查(使用MAC)。,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1