1.1. Web服务器概念与基本原理1.1.1. Web服务器的历史1989年,互联网之父Berners-Lee向其雇主CERN提出了一个新项目,目的是通过使用超文本系统来缓解科学家之间的信息交流 。该项目导致Berners-Lee在1990年编写了两个方案:
- 一个名为WorldWideWeb的浏览器 。
- 世界上第一个网络服务器,后来被称为CERN httpd,它运行在NeXTSTEP上
在1991年至1994年期间,用于通过万维网冲浪和交换数据的早期技术的简单性和有效性有助于将其移植到许多不同的操作系统,并将其用于科学组织和大学,然后传播到行业 。
Web服务器的主要功能是存储,处理和传递网页给客户 。客户端和服务器之间的通信使用超文本传输?协议(HTTP)进行 。交付的页面最常见的是HTML文档,除了文本内容之外,还可能包含图像,样式表和脚本 。
一个用户代理,通常是web浏览器或web爬虫,通过发起一个HTTP请求以获取服务器资源,服务器根据请求返回该资源或由于某种原因响应错误消息 。该资源通常是服务器辅助存储上的真实文件,但这不一定是这种情况,取决于Web服务器的实现方式 。
虽然主要功能是提供内容,但HTTP的完整实现还包括从客户端接收内容的方式 。此功能用于提交Web表单,包括上传文件 。许多通用Web服务器还支持使用Active Server Pages(ASP),PHP或其他脚本语言的服务器端脚本 。这意味着Web服务器的行为可以在单独的文件中脚本化,而实际的服务器软件保持不变 。通常,此函数用于动态生成HTML文档(“即时”),而不是返回静态文档 。前者主要用于从数据库检索或修改信息 。后者通常快得多,并且更容易被缓存,但不能提供动态内容 。
Web服务器不仅用于为万维网服务 。它们也可以被嵌入到诸如打印机,路由器,网络摄像机等设备中,并且仅服务于本地网络 。然后,web服务器可以用作用于监视或管理所讨论的设备的系统的一部分 。这通常意味着客户端计算机上不需要安装其他软件,因为只需要一个网络浏览器(现在大多数操作系统都包含在内) 。
1.1.2. Web服务器工作原理HTTP协议基于TCP协议上,是一个应用层协议,用于用户代理和Web服务器进行通信 。Web服务器通常采用一问一答的方式进行工作:
- 在用户代理上用户发起资源请求,请求内容包括但不限于:指定资源的唯一标识URI,指明动作类型(GET/POST/DELETE/PUT...)
- 用户代理解析用户输入URI并从中获取目标域名,交由DNS服务器解析 。如果URI中指定某IP地址,这无需这步 。
- 如果与服务器的会话还没建立,此时先建立TCP连接,并完成HTTP协商(确定双方均可接受的处理方式,包括协议版本,是否加密,内容格式等等) 。
- 用户代理把请求内容封装成HTTP数据包向服务器发送 。
- 服务器接收到资源请求并以之前协商好的方式解包并处理 。
- 服务器请求的资源封装成HTTP数据包并返回给用户代理 。
更多linux内核视频教程文本资料免费获取后台私信【内核】
文章插图
- TCP监听模块 服务器监听某个端口(一般默认是8080端口,用户可以设置其他端口),以建立和用户代理之间的连接 。一旦建立连接,用户代理的后续HTTP请求将不用再进入监听模块 。
- 预处理 此处主要做三件事:1. 从TCP报文中获取HTTP请求报文 。2. 根据和用户代理的协商进行解密,解压,安全处理等等 。3. 根据服务器自身的配置进行安全处理,建立会话状态等等 。
- UR路由 解析URL字符串和动作以确定用户代理请求的资源,根据匹配规则(通常根据正则表达式+后缀)路由到静态资源处理模块或动态资源处理模块 。
- 静态资源处理模块 负责找到静态资源,比如HTML/Javascript/CSS文件/图片/图像,确定内容是字符流或者字节流,并确定对应MIME,比如HTML生成MIME为text/html的字符流,mpeg视频文件生成MIME为video/mpeg的字节流 。
- 动态资源处理模块 运行业务逻辑处理,动态决定返回的资源内容和类型,内容和类型的处理原则同上 。
- 后处理 根据和用户协商的协议进行加密,压缩,安全处理等等 。
- 英雄联盟蓝色精粹的作用是什么? 英雄联盟lol精粹有什么用
- 相差7岁的兄弟俩能有多像?亲妈吐槽哥俩长相:S码跟L码的区别
- 牵牛子的作用及禁忌 牵牛花籽的功效与作用
- 小心!这样的住宅风水容易漏财败坏运势!-阳宅风水
- 马克思:不喜欢葡萄酒的人永远不会有出息
- 酒和吃的搭配 酒和饮料的搭配
- 投资创业葡萄酒加盟 葡萄酒利润
- 办公室的衰位在哪里?如何运用风水知识化解办公室衰位?-办公风水
- 全屋定制隔断酒柜是怎么算钱的 葡萄酒一条柜多少瓶
- 巧影如何添加音乐 巧影添加音乐的方法