目录
- 🕒 1. 概述
- 🕒 2. 文本传输协议HTTP
- 🕒 3. HTTP的报文格式
- 🕒 4. Cookie
- 🕒 5. 万维网缓冲与代理服务器
🕒 1. 概述
- 万维网www(World Wide Web)并非某种特殊的计算机网络。它是一个大规模的、联机式的信息储藏所,是运行在因特网上的一个分布式应用。
- 万维网利用网页之间的超链接将不同网站的网页链接成一张逻辑上的信息网。
- 浏览器最重要的部分是渲染引擎,也就是浏览器内核。负责对网页内容进行解析和显示。
- 不同的浏览器内核对网页内容的解析也有不同,因此同一网页在不同内核的浏览器里显示的效果可能不同。
- 网页编写者需要在不同内核的浏览器中测试网页显示效果。
- 为了方便地访问在世界范围的文档,万维网使用统一资源定位符URL来指明因特网上任何种类"资源"的位置
- URL的一般形式由以下四个部分组成:<协议>://<主机>:<端口>/<路径>
万维网的文档:
- 超文本标记语言HTML(HyperText Markup Language)
- 使用多种“标签”来描述网页的结构和内容
- 层叠样式表CSS(Cascading Style Sheets)
- 从审美的角度来描述网页的样式
- 一种脚本语言(和Java没有任何关系)
- 控制网页的行为
🕒 2. 文本传输协议HTTP
HTTP定义了浏览器(即万维网客户进程)怎样向万维网服务器请求万维网文档,以及万维网服务器怎样把万维网文档传送给浏览器
HTTP/1.0采用非持续连接方式。在该方式下,每次浏览器要请求一个文件都要与服务器建立TCP连接,当收到响应后就立即关闭连接。
- 每请求一个文档就要有两倍的RTT的开销。若一个网页上有很多引用对象(例如图片等),那么请求每一个对象都需要花费2RTT的时间。
- 为了减小时延,浏览器通常会建立多个并行的TCP连接同时请求多个对象。但是,这会大量占用万维网服务器的资源,特别是万维网服务器往往要同时服务于大量客户的请求,这会使其负担很重。
HTTP/1.1采用持续连接方式。在该方式下,万维网服务器在发送响应后仍然保持这条连接,使同一个客户(浏览器)和该服务器可以继续在这条连接上传送后续的HTTP请求报文和响应报文。这并不局限于传送同一个页面上引用的对象,而是只要这些文档都在同一个服务器上就行。
为了进一步提高效率,HTTP/1.1的持续连接还可以使用流水线方式工作,即浏览器在收到HTTP的响应报文之前就能够连续发送多个请求报文。这样的一个接一个的请求报文到达服务器后,服务器就发回一个接一个的响应报文。这样就节省了很多个RTT时间,使TCP连接中的空闲时间减少,提高了下载文档的效率。
🕒 3. HTTP的报文格式
HTTP有两类报文:请求报文和响应报文。
HTTP是面向文本的,其报文中的每一个字段都是一些ASCII码串,并且每个字段的长度都是不确定的。
方 法 描 述 GET 请求URL标志的文档 HEAD 请求URL标志的文档的首部 POST 向服务器发送数据 PUT 在指明的URL下存储一个文档 DELETE 删除URL标志的文档 CONNECT 用于代理服务器 OPTIONS 请求一些选项信息 TRACE 用来进行环回测试 PATCH 对PUT方法的补充,用来对已知资源进行局部更新 \begin{array}{|c|c|} \hline \text { 方 法 } & {\text { 描 述 }} \\ \hline \text { GET } & \text { 请求URL标志的文档 } \\ \hline \text { HEAD } & \text { 请求URL标志的文档的首部 } \\ \hline \text { POST } & \text { 向服务器发送数据 } \\ \hline \text { PUT } & \text { 在指明的URL下存储一个文档 } \\ \hline \text { DELETE } & \text { 删除URL标志的文档 } \\ \hline \text { CONNECT } & \text { 用于代理服务器 } \\ \hline \text { OPTIONS } & \text { 请求一些选项信息 } \\ \hline \text { TRACE } & \text { 用来进行环回测试 } \\ \hline \text { PATCH } & \text { 对PUT方法的补充,用来对已知资源进行局部更新 } \\ \hline \end{array} 方 法 GET HEAD POST PUT DELETE CONNECT OPTIONS TRACE PATCH 描 述 请求URL标志的文档 请求URL标志的文档的首部 向服务器发送数据 在指明的URL下存储一个文档 删除URL标志的文档 用于代理服务器 请求一些选项信息 用来进行环回测试 对PUT方法的补充,用来对已知资源进行局部更新
状态码(五大类33种) 描 述 1 X X 表示通知信息,如请求收到了或正在进行处理; 2 X X 表示成功,如接受或知道了; 3 X X 表示重定向,即要完成请求还必须采取进一步的行动; 4 X X 表示客户的差错,如请求中有错误的语法或不能完成; 5 X X 表示服务器的差错,如服务器失效无法完成请求。 \begin{array}{|c|c|} \hline \text { 状态码(五大类33种) }&{\text { 描 述 }} \\ \hline \mathbf{1 X X} & \text { 表示通知信息,如请求收到了或正在进行处理; } \\ \hline \mathbf{2 X X} & \text { 表示成功,如接受或知道了; } \\ \hline \mathbf{3 X X} & \text { 表示重定向,即要完成请求还必须采取进一步的行动; } \\ \hline \mathbf{4 X X} & \text { 表示客户的差错,如请求中有错误的语法或不能完成; } \\ \hline \mathbf{5 X X} & \text { 表示服务器的差错,如服务器失效无法完成请求。 } \\ \hline \end{array} 状态码(五大类33种) 1XX2XX3XX4XX5XX 描 述 表示通知信息,如请求收到了或正在进行处理; 表示成功,如接受或知道了; 表示重定向,即要完成请求还必须采取进一步的行动; 表示客户的差错,如请求中有错误的语法或不能完成; 表示服务器的差错,如服务器失效无法完成请求。
🕒 4. Cookie
Cookie提供了一种机制使得万维网服务器能够"记住"用户,而无需用户主动提供用户标识信息。也就是说,Cookie是一种对无状态的HTTP进行状态化的技术。
🕒 5. 万维网缓冲与代理服务器
- 在万维网中还可以使用缓存机制以提高万维网的效率。
- 万维网缓存又称为Web缓存(Web Cache),可位于客户机,也可位于中间系统上,位于中间系统上的Web缓存又称为代理服务器(Proxy Server)。
- Web缓存把最近的一些请求和响应暂存在本地磁盘中。当新请求到达时,若发现这个请求与暂时存放的请求相同,就返回暂存的响应,而不需要按URL的地址再次去因特网访问该资源。
Q:如果原始服务器中的文档已经修改,但是代理服务器中仍然有缓存,那么主机访问文档时是否会访问到未修改的文档从而发送错误呢?
A:实际上,原始服务器会为每个响应的对象设定一个修改时间字段和一个有效日期字段。当请求到达代理服务器时,若文档未过期则直接返回响应报文,否则向原始服务器发送请求。请求头部中有If-modified-since字段,记录了上次文档的修改时间,如果代理服务器中文档的修改时间与原始服务器中文档的修改时间一致,说明文档没有发送变化,因此原始服务器返回一个空文档,否则返回新文档。
❗ 转载请注明出处
作者:HinsCoder
博客链接:🔎 作者博客主页