TCPIP基本原理与UNIX网络服务第10章.pptVIP

  • 2
  • 0
  • 约2.8万字
  • 约 103页
  • 2017-12-30 发布于湖北
  • 举报
TCPIP基本原理与UNIX网络服务第10章.ppt

第10章 Web服务 10.1 HTTP协议简介 10.2 HTML语言简介 10.3 Web服务器的配置和管理 10.4 小结 习题 Web(或称World Wide Web,简称WWW)服务是最常见的Internet服务,而HTTP(Hypertext Transfer Protocol,超文本传送协议)是Web的基础。Web服务是典型的客户/服务器结构的应用。 Web的客户(通常称之为“浏览器”)与Web服务器使用一个或多个TCP连接进行通信。Web客户端与服务器端通信时所采用的协议就是HTTP协议。Web服务器可以通过超文本链接指向另一个Web服务器,或者是其他类型的服务器。 在HTTP的协议描述草案中,描述了一种从Web服务器返回给客户端的文档,称为HTML(超文本标记语言)文档。Web服务器还返回其他类型的文档(图像、无格式文本等),与这些用HTML语言描述的文档一起,构成了丰富多彩的Web页面。 10.1 HTTP协议简介 HTTP协议是应用层协议,它适应了分布式超媒体协作系统对灵活性及速度的要求。它是一个一般的、无状态的、基于对象的协议,通过对其请求方法(request methods)进行扩展,可以用于多种用途,比如名字服务器(name server)及分布式对象管理系统。通常情况下,Web服务器提供服务的端口号为80,当然也可以使用其他端口。 以下对HTTP协议的介绍主要是基于HTTP 1.1版的。 10.1.1 HTTP协议基本格式 HTTP协议是基于请求/响应机制的。客户端与服务器端建立连接后,以请求方法、URI、协议版本等方式向服务器端发出请求,该请求可跟随包含请求修饰符、客户信息、及可能的请求体(body)内容的MIME类型消息。 服务器端通过状态队列来响应,内容包括消息的协议版本、成功或错误代码,也跟随着包含了服务器信息、实体元信息及实体内容的MIME类型消息。一般情况下,服务器在响应发送结束以后,就会断开连接,这样,同一个客户前后两次的请求在服务器看来是没有任何关系的。因此,HTTP协议是一种“无状态”的协议。在实际应用中,为了解决这个问题,一般采取的是Cookie技术。 绝大多数HTTP通信由客户端主动发起连接,并通过它来组装请求以获取存储在一些原始服务器上的资源。在最简单的情况下,通过用户代理(User Agent,UA)与原始服务器之间一个简单的连接就可以完成。 更复杂的情况是当请求/响应链之间存在一个或更多中间环节。总体看来,有三种中间环节:代理(proxy)、网关(gateway)、隧道(tunnel)。 代理类似于中间人(agent),它以绝对形式接收URI请求,重写全部或部分消息,并将经过改写的请求继续发送给URI中指定的服务器。 网关是接收代理,它处于服务器层之上,在必要时候,它用服务器可识别的协议来传递请求。 隧道不改变消息,它只是连接两端的中继点。在有中间层(如防火墙)或中间层无法解析消息内容的情况下,需要靠隧道技术来帮助通信穿越中间层。 HTTP的数据报报文有两种类型:请求报文和响应报文,报文都是由直接可阅读的文本构成,并以回车加换行符来结束报文中的每一行。以下说明HTTP1.1协议的报文格式。 HTTP1.1请求的报文格式是: 支持的请求类型有: GET请求 服务器将返回“请求的URI”所指出的任意信息(如果存在的话)。 HEAD请求 类似于GET请求,但服务器只返回指定的文档的首部信息,而不包含文档的实际内容。该请求通常用来测试超文本链接的正确性、可访问性以及最近的修改等信息。 POST请求 一般用来发送能由用户交互而填写的信息。这是惟一需要在请求中发送body的请求。使用POST请求时需要在报文首部的Content-Length字段中指出body的长度。 HTTP1.1协议响应的报文格式是: 根据响应报文中的响应代码(见后详述),就可以清楚地得知本次请求的结果。 10.1.2 HTTP协议的首部 HTTP1.1的请求和响应报文中的首部都包含了可变数量的字段,并用一个空行将首部字段与报文的主体分割开来。一个首部的字段由字段名、冒号、一个空格、字段值四个部分组成。字段名不区分大小写。 FieldName: FieldValue 这些字段主要是说明请求、响应以及内容的一些属性,以及进行可能的HTTP选项协商等,服务器将会根据客户端发出的首部字段进行不同的处理,而客户端对响应中的首部字段进行解释后,给用户显示出不同的信息。 报文首部的字段可以分为3类:一类应用于请求报文中,一类应用于响应报文中,还有一类用于描述响应或请求的内容。有些首部字段既可以用于请求,又可用于响应。 常见可能的首部字段名如表10-1所示。 对于未知名的字段,将会被接

文档评论(0)

1亿VIP精品文档

相关文档