1. 简述ASP.NET Web网页的工作原理。
ASP.NET的工作原理是:首先,有一个HTTP请求发送到Web服务器要求访问一个Web网页。 Web服务器通过分析客户的HTTP请求来定位所请求网页的位置。如果所请求的网页的文件名的后缀是 aspx,那么就把这个文件传送到aspnet_isapi.dll进行处理,由aspnet_isapi.dll把ASP.NET代码提交给CLR。如果以前没有执行过这个程序,那么就由CLR编译并执行,得到纯HTML结果;如果已经执行过这个程序,那么就直接执行编译好的程序并得到纯HTML结果。最后把这些纯HTML结果传回浏览器作为HTTP响应。浏览器收到这个响应之后,就可以显示Web网页。
2. 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: http://localhost/ch8/SendDetails.htm
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=Franks&FirstName=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=Franks&FirstName=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>
<title>HTTP Response Example</title></head><body>
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 请求。
3. Web程序访问的基本原理是什么
WEB应用时是基于HTTP协议的,而Http协议时一种超文本传输协议,是计算机在网络中通信的一种规则。
Http请求信息包括请求行、请求头、空行和消息体。从请求行里面可以得到Http的信息发送方式(方式有很多种,但通常是GET或POST中的一种),请求的URL,以及Http版本;请求头里面是一些客服端的信息,比如使用的是什么浏览器,可以接受那些类型的数据等等。
Http响应信息包括状态行、响应头、空行、消息体。状态行由Http协议版本、响应状态码和响应描述组成。
WEB服务器最早只能发送静态页面,为了解决这个问题,人们想到的办法是CGI通用网关接口,用于调用其他程序产生内容。但是并发量一旦比较高的时候,这种CGI就显得性能很差。不过这样的思想给后面的技术提供了思路。
4. WEB服务器的工作原理
80端口是为HTTP(HyperText
Transport
Protocol,超文本传输协议)开放的,这是上网冲浪使用最多的协议,主要用于在WWW(World
Wide
Web,万维网)服务上传输信息的协议。我们可以通过HTTP地址加“:80”(即常说的“网址”)来访问网站的,比如<a
href="
http://www.cce.com.cn:80"
target="_blank">
http://www.cce.com.cn:80</a>,因为浏览网页服务默认的端口号是80,所以只要输入网址,不用输入“:80”。
端口漏洞:有些木马程序可以利用80端口来攻击计算机的,比如Executor、RingZero等。
操作建议:为了能正常上网冲浪,我们必须开启80端口。
在Windows2000/XP/Server2003中要查看端口,可以使用NETSTAT命令:
“开始">"运行”>“cmd”,打开命令提示符窗口。在命令提示符状态下键入“NETSTAT-a-n”,按下回车键后就可以看到以数字形式显示的TCP和UDP连接的端口号及状态.
命令格式:Netstat-a-e-n-o-s
-a表示显示所有活动的TCP连接以及计算机监听的TCP和UDP端口。
-e表示显示以太网发送和接收的字节数、数据包数等。
-n表示只以数字形式显示所有活动的TCP连接的地址和端口号。
-o表示显示活动的TCP连接并包括每个连接的进程ID(PID)。
-s表示按协议显示各种连接的统计信息,包括端口号。
关闭端口
比如在Windows2000/XP中关闭SMTP服务的25端口,可以这样做:首先打开“控制面板”,双击“管理工具”,再双击“服务”。接着在打开的服务窗口中找到并双击“SimpleMailTransferProtocol(SMTP)”服务,单击“停止”按钮来停止该服务,然后在“启动类型”中选择“已禁用”,最后单击“确定”按钮即可。这样,关闭了SMTP服务就相当于关闭了对应的端口。
开启端口
如果要开启该端口只要先在“启动类型”选择“自动”,单击“确定”按钮,再打开该服务,在“服务状态”中单击“启动”按钮即可启用该端口,最后,单击“确定”按钮即可。
另外在网络连接属性中,选择“TCP/IP协议”属性,打开高级TCP/IP设置,在选项的那个页面打开TCP/IP筛选,在出现的设置窗口中也可以根据实现情况设置端口的打开和关闭,默认是未启用TCP/IP筛选。
5. 简述web工作原理
Web的工作原理:
1、浏览器地址栏输入想要访问网站首页的地址;
2、用户向浏览器发送访问首页的请求;
3、服务器收取客户端的的访问请求;
4、服务器处理请求(若首页动态文档需要经过数据处理再返回,若为静态文档直接返回该文档即可);
5、服务器将请求的处理结果在客户端的浏览器显示。
(5)web程序访问工作原理扩展阅读:
web工作表现形式
1、超文本(Hyper text)
超文本是一种用户接口方式,用以显示文本及与文本相关的内容。现时超文本普遍以电子文档的方式存在。
其中的文字包含有可以链接到其他字段或者文档的超文本链接,允许从当前阅读位置直接切换到超文本链接所指向的文字。
2、超媒体(hypermedia)
超媒体是超级媒体的简称。是超文本(hypertext)和多媒体在信息浏览环境下的结合。用户不仅能从一个文本跳到另一个文本,而且可以激活一段声音,显示一个图形,甚至可以播放一段动画。
Internet采用超文本和超媒体的信息组织方式,将信息的链接扩展到整个Internet上。Web就是一种超文本信息系统,Web的一个主要的概念就是超文本链接。
3、超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。
参考资料来源:网络—web
6. 简述web访问的工作原理
web本意是蜘蛛网和网的意思。现广泛译作网络、互联网等技术领域。表现为三种形式,即超文本(hypertext)、超媒体(hypermedia)、超文本传输协议(HTTP)等。
当你想进入一个网页, 或者其他网络资源的时候,通常你要首先在你的浏览器上键入你想访问网页的统一资源定位符(Uniform Resource Locator),或者通过超链接方式链接到那个网页或网络资源。这之后的工作首先是URL的服务器名部分,被名为域名系统的分布于全球的因特网数据库解析,并根据解析结果决定进入哪一个IP地址(IP address)。
接下来的步骤是为所要访问的网页,向在那个IP地址工作的服务器发送一个HTTP请求。在通常情况下,HTML文本、图片和构成该网页的一切其他文件很快会被逐一请求并发送回用户。
网络浏览器接下来的工作是把HTML、CSS和其他接受到的文件所描述的内容,加上图像、链接和其他必须的资源,显示给用户。这些就构成了你所看到的“网页”。
大多数的网页自身包含有超链接指向其他相关网页,可能还有下载、源文献、定义和其他网络资源。像这样通过超链接,把有用的相关资源组织在一起的集合,就形成了一个所谓的信息的“网”。这个网在因特网上被方便使用,就构成了最早在1990年代初蒂姆·伯纳斯-李所说的万维网
7. 试述WEB服务的工作原理
Web服务的工作原理是各公司从注册表(ebXML或UDDI的注册表)获得发布信息,建立满足要求的执行过程,然后向注册表发布它们的服务。以后,其他公司发现注册表中列出的一项服务,同意已制定的标准,然后开展业务。一旦在标准上取得一致并且约定的规则得到满足,应用程序就可以接管交易处理,因而从开展业务的开销中去除了人工互动。在这种模型中,通过利用现有基础设施,应用可以交换有关公司希望提供和消费的服务的信息。此外,应用还可以查询注册表,查找可以以更优惠条件提供同样服务的其他应用(公司)。
在标准方面,UDDI作为一种用于Web的黄页被编制出来,它可以通过WSDL访问。WSDL支持类似于UDDI特性的ebXML注册特性。除了与UDDI的数据库特性竞争外,ebXML的Web服务部分曾被考虑与SOAP标准进行竞争。幸运的是,OASIS已将SOAP集成到ebXML中。目前,这些协议既相互重叠(UDDI和ebXML)又相互补充(SOAP和ebXML)。
·UDDI(通用描述、发现和集成):UDDI是Microsoft、IBM和Ariba为制定一项用于描述、注册和发现Web服务的Internet标准而成立的联盟。由此而来的UDDI框架是“一个企业可以注册其Web服务并查找其他Web服务的数据库集合。”应用程序使用SOAP
API来读取或提供与UDDI相关的WSDL文档。
·WSDL(Web服务描述语言):WSDL文件,即UDDI和ebXML注册表的子集合,提供联系信息、Web服务的描述、它们的位置以及如何调用它们的规范。UDDI注册表按行业类别和地理位置细分。WSDL文件常常由另外的信息源(如,COM
IDL或CORBA文件或EJB类定义)生成。WSDL用于描述通过Internet(或其他网络)可访问的程序以及同这些程序进行交流的信息格式和协议。它可以使Web服务的功能通过标准的方式展示出来,从而使Web服务和开发工具更易兼容。
·SOAP(简单对象访问协议):SOAP是使用XML通过Internet发送信息和访问动态Web服务的友好界面。其主要作用在于确保信息通过互联网在业务应用之间传输的可靠性。作为一种用在分布式环境中交换结构化数据的协议,它包括三个部分:信封、报头(可选)和协议消息体。信封标记SOAP消息的开始与结束。它还可以规定在网络上数据的编码规则。SOAP报头可以包含发送给一个地址或多个地址的邮件、一个支付代码或有关RPC类型互动的信息。一个信封中可以有多个报头或完全没有报头。SOAP消息体传送自描述结构或RPC类型接口格式的数据。
·ebXML(电子业务XML):ebXML标准是由OASIS和UN/CEFACT为帮助使XML成为开展电子数据交易的世界性语言。ebXML架构以业务过程和信息模型开始,将这个模型映射到XML文件并定义处理这些文件以及在交易伙伴之间交换这些文件的应用程序的要求。同UDDI注册表一样,ebXML注册表以标准的文档格式列出一家公司的能力的清单,使企业可以通过这个注册表找到其他企业、定义协议以及交换帮助开展商务交易的XML消息。ebXML的目标是使所有这些事务可以在Internet上被自动执行,无需人工干预。