4. 客户端发出请求: GET /index.html HTTP/1.1 Host: www.example.com 服务器端的响应如下: HTTP/1.1 200 OK Date: Mon, 23 May 2005 22:38:34 GMT Server: Apache/1.3.3.7 (Unix) (Red-Hat/Linux) Last-Modified: Wed, 08 Jan 2003 23:11:55 GMT Etag: "3f80f-1b6-3e1cb03b" Accept-Ranges: bytes Content-Length: 438 Connection: close Content-Type: text/html; charset=UTF-8
5.
6.
7.
8.
9.
10.
11.
12. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>DHTML example</title> <script type="text/javascript"> function init() { myObj = document.getElementById("navigation"); // .... more code]] } window.onload=init; </script> </head> <body> <div id="navigation"></div> <pre> Often the code is stored in an external file; this is done by linking the file that contains the JavaScript. This is helpful when several pages use the same script: </pre> <script type="text/javascript" src="myjavascript.js"></script> </body> </html>
13.
14.
15.
16. 直白的文件请求 对于第一种情况,比如请求一个静态的 html 文件,就像开头的第一个 HTTP 实验,这样的请求 Web 服务器只要直接返回对应的 html 文件即可,不需要在服务器端进行计算。此时的性能主要也就落在了磁盘 I/O 上面。 第二种情况就是需要服务器端 CPU 计算的技术,典型代表是 CGI , Java Servlet 、 WebService 。
18. CGI Bash Example #!/bin/sh #One line of HTTP head echo Content-type: text/plain #One line for the Empty Content echo "" # Do some Business Logic here # Output html response or others echo "<html><body>Hello World!</body></html>"
19. CGI 的不同实现 CGI 有个缺点,就是启动程序的时候需要创建进程,如果每个请求都创建一个解释器的进程,那么效率将会非常低下,此时可以把解释器做成 Web Server 的一部分,在 Apache 中采用模块方式,比如 mod_python,mod_ruby,mod_php 等,这样每次请求就不必都启动一个解释器的进程,也就提高了执行效率。
23. Web Service 的实现方式 Web Service 的实现方式按照通信编码来分有三种: XML-RPC 、 SOAP 、 RESTful( 最近出来的 ) 。 XML-RPC 是 Remote Procedure Call ,由特定格式的 XML 描述,比如 WSDL 格式。 SOAP 是基于 SOAP 协议的 Web Service ,也就是 Simple Object Access Protocal 协议。 RESTful(Representational state transfer ) 是充分利用了 HTTP 协议 (GET,PUT,DELETE...) 实现 Web Service 。
24. Web 2.0 杂谈 SNS , Wiki , Blog 这类应用都是在贯彻全民织网这个理念, Web 2.0 技术还是这些技术,但是系统体现的主体性有所改变,从以往的集中式信息发布平台转变为个人用户信息发布平台。所以对于技术人员而言, Web 2.0 和 1.0 并未有太大的变化,只是技术的使用手法有所改变,而促使这些改变的,就是全民织网这个概念。围绕这个概念,用户体验之类的技术也会由此而生,从而使得富客户端技术能够飞速发展。