HTTP和Servlet的基础知识

上传人:宝路 文档编号:2996166 上传时间:2017-07-29 格式:DOC 页数:19 大小:86.01KB
返回 下载 相关 举报
HTTP和Servlet的基础知识_第1页
第1页 / 共19页
HTTP和Servlet的基础知识_第2页
第2页 / 共19页
HTTP和Servlet的基础知识_第3页
第3页 / 共19页
HTTP和Servlet的基础知识_第4页
第4页 / 共19页
HTTP和Servlet的基础知识_第5页
第5页 / 共19页
点击查看更多>>
资源描述

《HTTP和Servlet的基础知识》由会员分享,可在线阅读,更多相关《HTTP和Servlet的基础知识(19页珍藏版)》请在金锄头文库上搜索。

1、作者:汉斯伯格斯登第 2 章 HTTP 和 Servlet 的基础知识让我们从定义 Web 应用程序这一章开始。我们都经常看到客户端应用程序,但到底什么是 Web 应用程序?习惯上说,它可以被定义为在服务器上运行,通过一个简单的通用客户端的用户访问应用程序。今天,最常见的客户端是一个在 PC 或工作站的网络浏览器,但其他类型的客户正在迅速加入,如无线掌上电脑,手机,以及其他专业设备。这里的崇高目标是能够从任何设备访问到你所要的信息和服务。这意味着同样简单的客户端程序必须能够与许多不同的服务器应用通信,以及应用程序必须能够适用于许多不同类型的客户。为了满足这种需要,如何在客户端和服务器相互交谈,

2、必须详细定义的协议。这正是超文本传输协议(HTTP)的用途。通信模型所确定的 HTTP 形式的基础,所有的 Web 应用程序设计。基本了解 HTTP 的关键应用,适合发展中国家的限制范围内的协议,无论哪个服务器端技术的使用。在本章中,我们看一下最重要的细节的 HTTP 您需要了解作为一个 Web 应用程序开发。另外一个项目:这本书是关于使用作为服务器端技术的 JSP。 JSP 是基于Java Servlet 技术。这两种技术有着很多的术语和概念,所以知道有关的 servlet知识可以帮助你,即使你开发纯 JSP 应用程序。要真正理解并使用了 JSP 的全部功能,您需要了解一点 servlet

3、的知识。因此,我们期待在本章最后一节讲到的 servlet 的基础。 2.1 HTTP 请求/响应模型 所有扩展 HTTP 和基于 HTTP 协议是基于一个非常简单的通信模式。其工作原理如下:客户端,通常是一个 Web 浏览器,发出了一个请求资源的服务器,服务器发回的响应相应的资源(或响应的错误信息,如果它不能处理请求出于某种原因) 。A 资源是一些事情的数据,如一个简单的 HTML 文件逐字返回到浏览器或程序,动态生成的响应。这种简单的模式意味着你需要了解三个重要的事实:HTTP 是一种无状态协议。这意味着服务器不保留任何信息发出后客户端的反应,因此,它不承认,多请求来自同一客户端可能有亲缘

4、关系。Web 应用程序无法轻易地提供即时反馈信息中常见的独立的图形用户界面应用程序,如文字处理机或传统客户机/服务器应用程序。每当它们之间的互动客户端和服务器需要一个请求/响应交流时。执行请求 /响应交流当用户选择一个项目在一个列表框或填写表单元素通常是过于繁重的带宽提供给大多数的互联网用户。这里没有什么协义告诉服务器如何提出请求,因此,服务器无法在客户端上区分各种方法触发的要求。例如,不允许 HTTP Web 服务器来区分一个明确的要求所造成的点击一个链接或提交表单和一个隐含的要求所造成的调整浏览器窗口或使用浏览器的后退按钮。此外,超文本传输协定不包含任何手段服务器调用客户端的特定职能,例如

5、回去在浏览器历史记录列表或发送的反应在一定范围内。另外,服务器无法检测什么时候用户关闭浏览器。多年来,人们已经制定了各种技巧来克服务第一个问题;HTTP 的无国籍性。其他两个问题,没有及时反馈,也没有详细说明如何提出要求-这个更难处理,但是可以通过产生的反应来获取一些互动,这些反应包括客户端代码(代码执行的浏览器) ,如 JavaScript 或 Java 小程序。2.1.1 详叙 Requests让我们仔细看看 Requests。用户发送请求到服务器,通过点击一个链接的网页上,提交表单时,或输入一个网页地址在浏览器的地址栏。发送请求后,浏览器需要知道与哪些服务器交换数据,并要求得到资源。UR

6、L 必须跟据服务器名详细描术端口号,例如:http:/ URL 中指定的 Requests 是使用 HTTP 协议的。其次是服务器的名称,在这种情况下 。Web 服务器等待请求将在某一特定的 TCP / IP 端口。端口号 80 是标准端口,用于 HTTP 请求。如果Web 服务器使用另一个端口, URL 必须跟据服务器名称指定端口号。例如: http:/:8080/index.html这一请求被发送到一台服务器,使用端口 8080 而不是 80。最后部分的URL / index.html,确定了客户端请求的资源。网址实际上是一个专业化的统一资源标识符( URI,所界定的符合 RFC - 23

7、96 规格) 。URI 跟据地址确定部份资源,例如服务器,其中包含的资源。另一种类型的 URI 是一个统一资源名称(URN) ,这是一个全局唯一标识符,无论在什么地方都有效的资源的位置。HTTP 只处理 URL 的不同。该条款的 URI和 URL 常常被互换,不幸的是,他们有不同的定义略有不同的规格。我试图使用条款所界定的 HTTP/1.1 规范(符合 RFC - 2616 年) ,这是相当接近,以他们是如何也用在 servlet 和 JSP 规范。因此,我只有当 URI 以 http 开头时才使用的term URI (或 https ,为 HTTP 加密连线) ,其次是服务器名称,并可能有一

8、个端口号,如以前的例子。我使用的 URI 作为一个通用术语的任何字符串,确定了资源,确定位置可以从上下文而不需要 URI。例如,当请求已被交付给服务器,位置已经定确,只有资源标识符是很重要的。浏览器使用 URL 信息创造的请求消息使用指定的协议发送到指定的服务器。HTTP 请求消息由三部份组成:一个请求行,请求标头,请求体。请求行以方法名称的开头,随后进行了资源标识符和协议版本所使用的浏览器:GET / index.html HTTP/1.1最常用的方法是 GET。顾名思义, GET 请求用于从服务器检索资源。这是默认的请求方法,因此,如果您输入网址在浏览器的地址栏,或者点击一个链接,发送的请

9、求是作为一个 GET 请求到服务器。标题要求提供额外的信息可以使用服务器来处理请求。邮件正文是只包含在某些类型的 requests,如 POST 请求以后讨论。下面是一个例子,一个有效的 HTTP 请求消息:GET / index.html HTTP/1.1Host: 用户代理: Mozilla/5.0 (Windows; U; Win 9x 4.90; en-US; rv: 1.0.2)接受:image/gif, image/jpeg, image/pjpeg, image/png, */*接受语言:en接受字符:iso-8859-1,*,utf-8请求行指定的 GET 方法和要求的资源命名

10、 / index.html 使用 HTTP/1.1 协议返回。不同的头提供不同的资料。主机标头使用 URL 告诉服务器主机名。服务器可能有多个名称,因此这一信息是用来区分多个虚拟的网络服务器共享相同的 Web 服务器进程。user - agent 标题包含有关类型的浏览器提出请求。服务器可以用它来传送不同类型的反应,不同类型的浏览器。例如,如果服务器知道是使用 Internet Explorer 或 Netscape Navigator,它可以发出一个反应,充分利用每一个浏览器的独特功能。它也可以判断客户端以外的 HTML 浏览器使用,如无线标记语言(标记语言)的浏览器的手机或 PDA 设备,

11、并产生适当的反应。请求头提供有关的语言和文件格式的浏览器。这些标题可以用来适应不同功能的浏览器和不同的用户,如使用了一个受支持的图像格式和首选语言。这些只是一小部分的标题中可以包含请求的信息。资源标识符( URI ) ,并不一定对应于一个静态文件在服务器上。它可以识别一个可执行的程序,记录在一个数据库中,或差不多任何 Web 服务器知道。这就是通用术语资源的使用。事实上,就没有办法判断/ index.html 的通用资源识别符对应的文件还是其他什么东西,它只是一个名字,这意味着一些服务器。Web 服务器被配置为地图这些指定的名称对应指定的资源。2.1.2 祥叙 response当 Web 服务

12、器接收请求,它根据配置的信息,查看 URI 并且决定如何处理请求。它可以通过简单的内部处理从文件系统读取一个 HTML 文件,也可以提出请求的一些组件,它是对资源的 URI 相应责任。这可以是一个程序使用的数据库信息,例如,动态地生成一个适当的回应。若要浏览器中并没有要求是如何处理不同,它所关心的是得到一个回应。响应消息类似于请求信息。它包括:它包括三件事:一个状态行,响应头,和一个可选的反应机构。下面是一个例子: HTTP/1.1 200 OKLast-Modified: Mon, 20 Dec 2002 23:26:42 GMTDate: Tue, 11 Jan 2003 20:52:40

13、 GMTStatus: 200Content-Type: text/htmlServlet-Engine: Tomcat Web Server/5.0Content-Length: 59Hello World!状态行始于该协议的名称,后跟一个状态代码和一个状态代码的简短说明。在这里,状态代码是 200,这意味着请求成功执行。响应消息刚刚想请求消息头。在这个例子中,最后的修饰头给出了当资源的最后修改的日期和时间。该浏览器可以使用本地缓存中的一个时间戳这一信息,下一次用户要求这一资源,他可以向服务器发送它只要当它被更新,因为这是最后一次要求。内容类型头告诉浏览器有什么反应的数据类型和主体包含内容长

14、度头是多大。另一头是不言自明。一个空行分隔邮件正文的标题。在这里,主体是一个简单的 HTML 页:Hello World!当然,人体可以包含一个更为复杂的 HTML 网页或任何其他类型的内容。例如,请求可能会返回一个 HTML 页面的 img 要素。当浏览器读取第一个反应时,并认为是 img 要素,它就发出了一个新的要求所确定的资源,往往是平行的。服务器返回一个响应,每幅图像的要求,与内容类型标题告诉什么类型的影像(例如图片/ gif 格式) ,主体含有字节构成的类型。然后浏览器结合了所有的反应来呈现完整的页面。2.1.3 请求参数 除了 URI 和标题,可以包含一个请求消息中的参数形式的补充

15、资料。如果URI 标识用于显示天气信息,例如,一个服务器端程序,请求参数可以提供有关城市的用户希望看到的一个预测信息。在一个电子商务应用程序,可以识别的 URI 与用户的客户数目程序处理订单,以及所购买的物品清单作为参数传送。参数可以发送两种方式之一:上涨到 URI 的查询字符串的形式或作为请求发送邮件的正文部分。这是一个 URL 与查询字符串的例子: http:/ 查询字符串始于一个问号(?)和名称/值对字符分隔符号() 。这些名称和值必须是 URL 编码,即特殊字符,如空格,问号,连字号,以及所有其他非字母数字字符的编码,使他们无法获得与使用单独的名称/值对和其他字符混淆部分的 URI。在这个例子中,海滩和赫莫萨之间的空间被编码为一个加号。其他特殊字符被编码为对应的十六进制 ASCII 值,例如,一个问号编码为3F。当参数作为请求体的一部分发送,他们遵循相同的语法; URL 编码的名称/ 值对由符号分隔。2.1.4 请求方法如前所述,GET 是最常用的请求方法,目的是获取,而不会造成任何其他发生在服务器上的资源。POST 方法几乎是共同的 GET,它请求服务器上的一些加工类,例如更新数据库或处理采购订单。参数之间的转移方式是 GET 和 POST 请求方法最明显的区别之一。总是使用一个 GET 请求发送一个查询字符串参数值,而 POST 请求总是

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 试题/考题

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号