- 记录事务处理过程 —— 将已完成事务有关的内容记录在日志中
建立连接
如果客户端已经打开了一条到服务器的持久连接,可以使用那条连接来发送它的请求。否则,客户端需要打开一条新的到服务器的链接。客户端请求一条到 Web
服务器的 TCP
连接时,服务器会建立连接,判断连接的另一端是哪个客户端,从 TCP
连接中将 IP
地址解析出来。一旦新的链接并接受,服务器就会将连接添加到其现存的 Web
服务器连接列表中,并且监视连接上数据传输。服务器可以随意拒绝或立即关闭任一条连接,有些服务器会因为客户端 IP
地址或主机名是未认证的,或者因为它是已知的恶意客户端而关闭连接。当然,服务器也可以使用其他识别技术:
- 客户端主机名识别
可以利用 “反向 DNS
” ,对大部分服务器进行配置,以便将客户端 IP
地址转换成客户端主机名。Web服务器
可以将客户端主机名用于详细的访问控制和日志记录。但是这种方式是很浪费时间的,很多大容量的服务器要么会禁止主机名解析,要么只允许对特定内容进行解析
- 通过
ident
识别客户端
服务器可以通过 ident
协议(前提是服务器得支持这个协议)找到 HTTP
连接的用户名。如果客户端支持 ident
协议,就在 TCP
端口113 上监听 ident
请求。
接收请求
连接上有数据到达时,服务器会从网络连接中读取数据,并将请求报文中的内容解析出来。以下就是具体的解析步骤:
-
解析请求行,查找请求方法、指定的资源标识符(URI)以及版本号
-
读取报文首部
-
读取请求主体(非必须)
处理请求
一旦服务器接收到请求,就可以根据方法、资源、首部以及可选的主体来进行处理,由于不同的请求方法具有不同的处理方式。
访问资源
在前面也提到过,可以认为在服务器上存储的一切事物都是资源,所以也可以说服务器就是资源服务器,它们负责发送预先创建好的内容,比如,HTML
页面。
-
docroot
,这是最简单的资源映射形式,就是用请求URI
作为名字来访问服务器中的文件。 -
目录列表,服务器可以接受对目录
URL
的请求,其路径可以解析为一个目录,而不是具体的资源。在这种情况下,大多数的服务器都会去寻找一个名为index.html
或index.htm
的文件来代替此目录。 -
动态资源映射,其实就是一个复杂的后台应用程序在控制管理着复杂的资源关系,动态的返回响应。
构建响应
- 响应实体。如果事务处理产生了响应主体,就将内容放在响应报文中回送过去。响应报文通常包含:
- 描述了响应主体
MIME
类型的Content-Type
首部
web浏览器中的javascript
- 客户端javascript
- 在html里嵌入javascript
- javascript程序的执行
- 兼容性和互用性
- 可访问性
- 安全性
- 客户端框架
window对象
-
计时器
-
浏览器定位和导航
-
浏览历史
-
浏览器和屏幕信息
-
对话框
-
错误处理
-
作为window对象属性的文档元素