《HTTP权威指南》-第5章 Web服务器
5.1 各种形状和尺寸的Web目ll务器
5.1.1 Web服务器的实现
5.1 .2 通用软件Web服务器
- apcahe
- iis
- ……
5.1.3 Webf服务器设备
5.1 .4 嵌入式Web服务器
5.2 最小的Perl Web服务器
5.3 实际的Web服务器会做些什么
(1)建立连接-一接受一个客户端连接,或者如果不希望与这个客户端建立连接,就将其关闭。
(2)接收请求一一从网络中读取一条HTTP 请求报文。
(3)处理请求一一对请求报文进行解释,并采取行动。
(4)访问资源一一访问报文中指定的资源.
(5)构建响应一一创建带有正确首部的HTTP 响应报文。
(6)发送响应一一将响应回送给客户端。
(7)记录事务处理过程一一将与已完成事务有关的内容记录在一个日志文件中。
5.4 第一步----接受害户端连接
5.4.1 处理新连接
5.4.2 客户端主机名识别
利用”反向DNS“
5.4.3 通过ident确定客户端用户
5.5 第二步----接收请求报文
5.5.1 报文的内部表示法
5 .5.2 连接的输入/输出处理结构
- 单线程Web 服务器
- 多进程及多线程Web 服务器
- 复用I0 的服务器
- 复用的多线程Web 服务器
5.6 第三步—-处理请求
5.7 第四步—-对资源的映射及访问
5. 7 .1 docroot
- 虚拟托管的docroot
虚拟托管的Web 服务器会在罔一台Web 服务器上提供多个Web 站点,每个站点在服务楼上都有自己独有的文挡根目录。虚拟于E管Web 服务器会根据URI 或Host 首部的IP地址或主机名来识别要使用的正确文档根目录。
- 用户的主目录docroot
Docroot 的另一种常见应用是在Web 服务器上为人们提供私有的Web 站点。通常会把那些以斜杠和浊浪号(/~)开始,后面跟着用户名的URI 映射为此用户的私有文档根目录。私有docroot 通常都是用户主目录下那个名为public_htn让的目录,但也可将其配置为其他值。
5.7.2 目录列表
- 返回一个错误。
- 不返回目录,返回一个特殊的默认“索引文件”。
- 扫描目录,返回一个包含目录内容的HTML 页面。
5.7.3 动态内容资源的映射
Web 服务器还可以将URI 映射为动态资源一一也就是说,映射到按需动态生成内容的程序上去。
5.7.4 服务器端包含项
很多Web 服务器还提供了对服务器端包含项( SSI) 的支持。如果某个资源被标识为存在服务器端包含项,服务器就会在将其发送给客户端之前对资摞内容进行处理。
要对内容进行扫描,以查找(通常包含在特定HTML 注释中的)特定的模板,这些模板可以是变量名.也可以是嵌入式脚本。可以用变量的值或可执行脚本的输出来取代特定的模板。这是创建动态内容的一种简便方式。
5.7.5 访问控制
Web 服务器还可以为特定资源进行访问控制。
5.8 第五步—-构建晌应
5.8.1 响应实体
- Content - Type
- content -Length
- 实际报文的主体内容。
5.8.2 MIME类型
- MIME 类型( mime.types)
- 魔法分类(Magic typing)
扫描内容 - 显示分类(Explicit typing)
配置实现 - 类型协商
多种类型,与用户协商
5.8.3 重定向
- 永久删除的资源:
301 - 临时删除的资源:
303、307 - URL 增强:
服务器通常用重定向来重写URL ,往往用于嵌入上下文。当请求到达肘,服务器会生成一个新的包含了嵌入式状态信息的URL,并将用户重定向到这个新的URL 上去。303,307. - 负载均衡:
303、307 - 服务器关联:
Web 服务器上可能会有某些用户的本地信息,服务器可以将客户端重定向到包含了那个客户端信息的服务器上去。303、307。 - 规范目录名称:
客户端请求的URI是一个不带尾部斜线的目录名时,大多数Web 服务器都会将客户端重定向到一个加了斜线的URI 上,这样相对链接就可以正常工作了。
5.9 第六步----发送响应
服务器要记录连接的状态,还要特别注意对持久连接的处理。对非持久连接而言,服务器应该在发送了整条报文之后,关闭自己这一端的连接。
对持久连接来说,连接可能仍保持打开状态,在这种情况下,服务器要特别小心,要正确地计算content - Length 首部,不然客户端就无法知道响应什么时候结束了。
相关推荐
自1996年以来,JavaScript的:权威指南已为JavaScript圣经程序员,程序员指南和全面的参考,以核心语言和客户端JavaScript API的Web浏览器定义。第6版包括HTML5和ECMAScript 5,与jQuery和服务器端JavaScript新的...
第5章 jQuery的动画与特效/124 5.1 显示与隐藏/125 5.1.1 show()与hide()方法/125 5.1.2 动画效果的show()与hide()方法/126 5.1.3 toggle()方法/128 5.2 滑动/131 5.2.1 slideDown()与slideUp方法/131 5.2.2...
第18章的源码主要涵盖了Struts2与Struts1的集成以及Struts2的验证机制。以下是这些源码中涉及的关键知识点: 1. **Struts2与Struts1的集成**: - **`struts2struts1`** 模块:这部分源码可能包含了如何在Struts2...
12. **ECMAScript5**:ECMAScript是JavaScript的标准,第五版引入了严格模式、对象字面量的改进、JSON支持、函数绑定、数组和对象的新方法等特性。 13. **函数式编程**:虽然JavaScript并非纯函数式语言,但其支持...
《HTTP权威指南》是互联网协议领域的一本经典著作,它深入浅出地解析了超文本传输协议(HTTP)的工作原理和应用。这本书对于理解和优化Web应用程序的性能、调试网络问题以及构建高效的服务至关重要。现在,结合提供...
5. web服务器:负责处理HTTP请求并返回相应内容。 6. 代理:位于客户端和服务器之间,用于请求转发。 7. 缓存:存储响应副本,减少延迟和带宽使用。 8. 集成点:包括网关、隧道和中继,用于不同协议间的转换和数据...
此外,Yii 已经在 Windows 和 Linux 系统上的 Apache HTTP 服务器中进行了测试,并且理论上在其他支持 PHP 5 的 Web 服务器和平台上也能正常运行。 #### 创建第一个 Yii 应用 - **使用 yiic 工具**:为了快速创建...
通过阅读《MongoDB权威指南》这本书,你可以深入了解MongoDB的原理、安装与配置、数据模型设计、备份与恢复策略、性能调优、安全性等方面的知识,从而更好地运用MongoDB来解决实际问题。无论你是初学者还是经验丰富...
《JavaScript权威指南第五版》是JavaScript编程领域内一本广受赞誉的经典著作,通常被称为“犀牛书”。这本书的英文原版提供了对JavaScript语言最原始、最深入的理解,帮助读者掌握其核心概念,以及作者David ...
在"Struts 2权威指南--基于WebWork核心的MVC开发"这本书中,读者可以深入学习到如何有效地利用Struts 2进行开发。 首先,我们需要理解MVC模式。Model代表业务逻辑,处理数据并保存状态;View负责展示数据;...
《Netty权威指南》第二版是一本深入解析Netty框架的专业书籍,主要针对Java网络编程领域的开发者。Netty是一个高性能、异步事件驱动的网络应用框架,常用于创建高效的服务器和客户端应用程序。这本书旨在帮助读者...
根据提供的信息,《Netty权威指南(第二版)》是一本专注于Netty框架的书籍,旨在为读者提供深入理解和掌握Netty所需的知识与实践技巧。以下将根据标题、描述及部分标签内容来概述Netty框架的核心知识点。 ### ...
《JavaScript权威指南(第五版)》是一本深受程序员喜爱的经典著作,它全面深入地探讨了JavaScript这门广泛应用于Web开发的脚本语言。JavaScript作为Web程序设计的核心技术,它的掌握对于任何想要在互联网领域有所建树...
根据提供的文件信息,我们可以推断出这是一本关于Apache Tomcat服务器的专业书籍——《TOMCAT权威指南第二版》。接下来,我们将从以下几个方面来详细阐述与这本书相关的知识点: ### 一、Apache Tomcat简介 #### ...
《Struts 2权威指南》是一本深入探讨该框架的专业书籍,其配套源码涵盖了从第2章到第7章的内容,帮助读者通过实践来理解和掌握Struts 2的核心概念和技术。 第2章通常会介绍Struts 2的基础知识,包括框架架构、配置...
《JavaScript 权威指南》第五版是一本深受程序员喜爱的经典著作,由David Flanagan撰写,是深入理解JavaScript语言的重要参考资料。这本书旨在为开发者提供全面、准确且深入的JavaScript知识,帮助他们有效地利用这...
《JavaScript权威指南(第6版)》主要讲述的内容涵盖JavaScript语言本身,以及Web浏览器所实现的JavaScript API。本书第6版涵盖了HTML5和ECMAScript 5,很多章节完全重写,增加了当今Web开发的最佳实践的内容,新增...
第5章深入探讨了Web服务器的内部运作,可能包括服务器配置、性能优化、安全策略以及不同类型的Web服务器软件(如Apache、Nginx等)的特点和使用场景。此外,这一章可能会讲解如何部署和管理多个虚拟主机,以服务于...