简述web服务器的工作原理,web服务器工作原理图

http://www.itjxue.com  2023-01-17 19:11  来源:未知  点击次数: 

WEB服务的工作原理

一个 Web 服务器也被称为 HTTP 服务器,它通过 HTTP 协议与客户端通信。这个客户端通常指的是 Web 浏览器。一个基于 Java 的 Web 服务器用到二个重要的类,java.net.Socket 与 java.net.ServerSocket ,并通过 HTTP 消息通信。因此,本文从讨论 HTTP 与这二个类开始,然后我将解释一个与本文相关的简单的 Web 应用。

The Hypertext Transfer Protocol(HTTP)

HTTP 是一种让 Web 服务器与浏览器(客户端)通过 Internet 发送与接收数据的协议。它是一个请求、响应协议--客户端发出一个请求,服务器响应这个请求。HTTP 运用可靠的 TCP 连接,通常用的 TCP 80 端口。它的第一个版本是 HTTP/0.9 ,然后被 HTTP/1.0 取代。当前的版本是 HTTP/1.1 ,由RFC2616(.pdf) 定义。

本节主要对应 HTTP 1.1 ,足够使你充分理解由 Web 服务器程序发出的消息。如果你对更加详细的知识有兴趣,可以参考 RFC2616 。

在 HTTP 中,客户端总是通过建立一个连接与发送一个 HTTP 请求来发起一个事务。服务器不能主动去与客户端联系,也不能给客户端发出一个回叫连接。客户端与服务器端都可以提前中断一个连接。例如,当用一个浏览器下载一个文件时,你可以通过点击“停止”键来中断文件的下载,关闭与服务器的 HTTP 连接。

HTTP 请求

一个 HTTP 请求包含三个部分:

Method-URI-Protocol/Version方法-地址-版本

Request header请求头

Entity body请求实体

下面是一个 HTTP 请求实例:

POST /servlet/default.jsp HTTP/1.1

Accept: text/plain; text/html

Accept-Language: en-gb

Connection: Keep-Alive

Host: localhost

Referer:

User-Agent: Mozilla/4.0 (compatible; MSIE 4.01; Windows 98)

Content-Length: 33

Content-Type: application/x-www-form-urlencoded

Accept-Encoding: gzip, deflate

LastName=FranksFirstName=Michael

The Method-URI-Protocol/Version 在这个请求的第一行:

POST /servlet/default.jsp HTTP/1.1

其中 POST 是请求的类型。每个客户端 HTTP 请求可以是 HTTP 规范中指定的许多请求类型中的一种。HTTP 1.1 支持七种类型的请求,它们是 GET,POST,HEAD,OPTIONS,PUT,DELETE,TRACE。其中 GET 与 POST 是 Internet 应用中经常用到的二种请求类型。

URI 完整地指定了 Internet 资源。一个 URI 通常被解析为相对服务器的根目录。这样,它应该总是以一个 '/' 前缀开始。一个 URL 实际上是 URI 的一种类型。

Version 指的是该 HTTP 请求所用到的 HTTP 协议版本。

请求头包含了客户端环境与请求实体的一些有用的信息。例如它包含浏览器设定的语言、实体的长度等等。每条请求头用回车换行符(CRLF)分开。

一个非常重要的空行分开了请求头与实体,它标志着实体内容的开始。一些 Internet 开发书籍认为这个 CRLF 空行是 HTTP 请求的第四个部分。

在上面的 HTTP 请求中,实体只是简单以下的一行:

LastName=FranksFirstName=Michael

在一个典型的 HTTP 请求中,请求实体内容会长得多。

HTTP 响应

与请求相似,HTTP 响应也由三部分组成:

Protocol-Status code-Description协议状态 描述代码

Response headers响应头

Entity body响应实体

以下是一个 HTTP 响应的实例:

HTTP/1.1 200 OK

Server: Microsoft-IIS/4.0

Date: Mon, 3 Jan 1998 13:13:33 GMT

Content-Type: text/html

Last-Modified: Mon, 11 Jan 1998 13:23:42 GMT

Content-Length: 112

html

head

titleHTTP Response Example/title/headbody

Welcome to Brainy Software

/body

/html

响应头的第一行类似请求头的第一行,告诉你所用的协议是 HTTP 1.1 ,请求成功(200=success),以及没有任何问题。

响应头类似请求头也包含了一些有用的信息。响应的实体响应本身的 HTML 内容。头与实体之间由回车换行的空行(CRLF)分开。

Socket 类

一个 socket 是一个网络连接的端点,它使得一个应用可以从网络读与写。在不同电脑上的二个应用软件能够通过收发字节流而彼此通信。要发一个信息到另一个应用程序,你需要知道它的IP地址,以及它的 socket 端口号。在 Java 中,一个 socket 用 java.net.Socket 来实现。

要创建一个 socket ,你可以用 Socket 类中几个构建方法中的一个。其中一个接受主机名与端口号作为参数:

new Socket("yahoo.com", 80);

一旦你成功地创建了一个 Socket 类的实例,你就可以用它去发送与接收字节流了。要发送字节流,你需要呼叫 Socket 类的 getOutputStream 方法来得到一个 java.io.OutputSteam 对象。要发送文本到远程的程序,你通常需要从返回的 OutputStream 创建一个 java.io.PrintWriter 对象。要从连接的另一端接收字节流,你需要呼叫 Socket 类的 getInputStream 方法,它返回一个 java.io.InputStream 对象。

以下代码创建一个可以与本地 HTTP 服务器通信的 socket (127.0.0.1 表示一个本地的主机),发送一个 HTTP 请求,并接收从服务器的响应。它还创建一个 StringBuffer 对象来接受响应,并打印到控制台。

Socket socket= new Socket("127.0.0.1", "8080");

OutputStream os= socket.getOutputStream();

boolean autoflush = true;

PrintWriter out= new PrintWriter( socket.getOutputStream(), autoflush );

BufferedReader in = new BufferedReader(

new InputStreamReader( socket.getInputStream() ));

// send an HTTP request to the web server

out.println("GET /index.jsp HTTP/1.1");

out.println("Host: localhost:8080");

out.println("Connection: Close");

out.println();

// read the response

boolean loop= true;

StringBuffer sb = new StringBuffer(8096);

while (loop) {

if ( in.ready() ) {

int i=0;

while (i!=-1) {

i = in.read();

sb.append((char) i);

}

loop = false;

}

Thread.currentThread().sleep(50);

}

// display the response to the out console

System.out.println(sb.toString());

socket.close();

注意要从 web 服务器得到正确的响应,你必须要发送用 HTTP 协议编译了的 HTTP 请求。如果你看了上面的 HTTP 部分,你应该能够理解上面代码中的 HTTP 请求。

web服务器工作原理

Step1:用户在地址栏输入一个网址,然后点击回车键;

Step2:浏览器与服务器建立TCP连接;

Step3:浏览器将用户的事件按照HTTP协议要求的格式打包成数据包,这个过程的本质就是在待发送缓冲区中有这一段HTTP协议格式的字节流;

Step4:浏览器确认服务器可写,将该数据包推入Internet中,最终,该包被递交到服务端;

Step5:服务器在接收到该数据包后,以同样的格式进行解析,获取客户端的意图;

Step6:在获取了客户端的意图之后,服务器进行分类处理,或是提供某一文件,或是处理相关数据;

Step7:将处理结果装入缓冲区,或者文档,或是其他内容;

Step8:服务器将按照HTTP协议格式,将Step7中的数据进行打包;

Step9:服务器确定对端可写,将数据包推入Internet,该包经过网络处理,最终返回至客户端;

Step10:客户端拿到包之后,以HTTP协议格式进行解包,然后解析数据;

Step11:客户端处理相关数据,并且展示在页面之上。

以上这11步,就是web服务器最基本的工作原理。通过梳理,我们不难发现,这就是一个简单的网络通信过程。换句话说,就是一个简单的发送数据、接受数据、处理数据的过程。更高级的web服务器,无非也就是将上述的三个基础内容划分得更加详细一点而已。

简述WEB服务器的工作原理.

Web服务的工作原理是各公司从注册表(ebXML或UDDI的注册表)获得发布信息,建立满足要求的执行过程,然后向注册表发布它们的服务。以后,其他公司发现注册表中列出的一项服务,同意已制定的标准,然后开展业务。一旦在标准上取得一致并且约定的规则得到满足,应用程序就可以接管交易处理,因而从开展业务的开销中去除了人工互动。在这种模型中,通过利用现有基础设施,应用可以交换有关公司希望提供和消费的服务的信息。此外,应用还可以查询注册表,查找可以以更优惠条件提供同样服务的其他应用(公司)。

“WEB服务器”是什么?

Web服务器:

一般指网站服务器,是指驻留于因特网上某种类型计算机的程序,可以向浏览器等Web客户端提供文档。

Web服务器作用:

1、放置网站文件,让全世界浏览;

2、可以放置数据文件,让全世界下载。

Web服务器分类:

1、Apache;

2、Nginx;

3、IIS。

Web服务器工作原理可分为四个步骤:

连接过程、请求过程、应答过程以及关闭连接。

简要介绍Web服务器的原理,以及端口号、HTTP、HTML、ASP等概念。

web服务器的原理就是解析你的web应用程序,然后输出页面给浏览器,就是把你的脚本语言翻译为用户可以看得懂浏览器上所能看到的东西。如果说网址(ip)是一个家,那么端口就好像是这个家的每个不同的房间,端口不同,访问的页面也不同。http是超文本传输协议的英文简写,就是网络间传输数据的一种协议。html是一种网页的语言,是学习网页制作最基本的东西,asp的中文全称为动态服务页面,他是微软开发的一种脚本语言,了解他,就要先了解vb,vbscript的各种对象的使用和属性,不管是那种动态语言,最重要的都是和数据库打交道。asp也不例外,你可以用它来任意添加,删除,修改数据,可以利用它来制作网页留言板,论坛,聊天室等“动态的东西”

web服务器的工作原理及安装配置步骤

一、web服务器的工作原理

1、客户端发送请求

客户端(通过浏览器)和Web服务器建立TCP连接,连接建立以后,向Web服务器发出访问请求(如get)。

2、服务器解析请求

Web服务器对请求按照HTTP协议进行解码来确定进一步的动作,设计的内容有三个要点:方法(GET)、文档(/sample.html)、和浏览器使用的协议(HTTP/1.1)其中方法告诉服务器应完动的动作,GET方法的含义很明显是:服务器应定位、读取文件并将它返回给客户。

3、读取其它信息(非必须步骤)

Web服务器根据需要去读取请求的其它部分。在HTTP/1.1下,客户还应给服务器提供关于它的一些信息。元信息可用来描述浏览器及其能力,以使服务器能据此确定如何返回应答。

4、完成请求的动作

若现在没有错误出现,WWW服务器将执行请求所要求的动作。要获取(GET)一个文档,web服务器在其文档树中搜索请求的文件(/sample.html)。这是由服务器机器上作为操作系统一部分的文件系统完成的。若文件能找到并可正常读取,则服务器将把它返回给客户。

5、关闭文件和网络连接,结束会话。

当文件已被发邮或错误已发出后,web服务器结束整个会话。它关闭打开的的被请求文件,关闭网络端口从而结束网络连接。有关的其它工作则是由客户端来完成的,包括接收数据,并以用户可读的方式呈现出来。这些与服务器无关。

二、web服务器的安装配置过程

以典型的web服务器Tomcat为例,进行安装配置。步骤如下:

1、在tomcat官网上下载tomcat安装版本。

2、将下载的zip包解压。

3、打开解压后的文件夹,进入bin文件夹。

4、双击Tomcat8.exe进行启动。

5、打开浏览器输入http://localhost:8080/,进入tomcat欢迎界面,配置成功。

(责任编辑:IT教学网)

更多

推荐windows vista文章