🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
一个 Web 服务器,是一个应用程序和一台个人计算机并配置来提供 Web 内容服务。一个 Web 服务器端应用是一个可执行程序,驻留在计算机内存然后等待基于 HTTP 通讯通道的请求。当接受到这样一个请求,Web 服务器分析输入并尝试生成一个合适的响应;这可以是传送一个服务器上的可用文件,例如一个图片或者一个静态的文档,或者委托一些 脚本/字节码执行到一个解释器,然后发送回客户端这个操作的结果。对于 HTTP 协议,最传统的一个客户端就是浏览器,但肯定不只唯一一个。从现在开始,客户端软件将被称为用户代理。这可以是现代浏览器如火狐,Safari 或者 IE,也可以是指收集信息的搜索引擎机器人。 当一个客户端提交一个页面请求到服务器,一个信息流开始,包括了 HTML(超文本标记语言)的传输;接着从服务器获得一个应答,如下: * 互联网浏览器接收来自用户所需资源的一个 HTTP 地址。这个地址可以直接输入或者是一个存在的页面超链接。 * 用户代理提交所需的 URI(统一资源标识符)还有互联网连接上的其它信息;请求从服务器发送到服务器直到到达可以给出正确响应的机器。 * 服务器处理请求并发送一个包含 HTML 代码的响应。 * 浏览器接收 HTML 代码并在接受整个信息的块之后开始渲染处理。一个块可能是一个段落,一个图片引用,或者一个表格。这段代码被解释和转换成一个可视化的表现。这就是为什么有时候当传输不是特别好或者页面内容相当多的时候页面看起来是由一个一个块组成的。 * 当在页面渲染时遇到一个嵌入对象,比如图像,脚本,flash 影片或者一个样式表,提交一个新的请求到服务器然后结果被包含进页面。这是一个异步的过程,意味着嵌入的资源可以在整个 HTML 代码完全接受/处理之前或者之后被完整加载。 地址并不是发送到服务器的请求的唯一信息;其它信息(通常对终端用户隐藏)被包装进请求头。这些请求头可能包含浏览器的识别标识,首选的语言,或者页面表单里的内容。同样的方式,响应也可能在响应头中包含一些额外的信息,就像传输内容的 content type 或者要存储到 cookie (客户端内存保存的一部分资产用来存储当前导航环境的一些首选项) 的一些值。