万维网(WWW)
万维网(WWW)
一、万维网概述
- 万维网 WWW (World Wide Web)是一个大规模的、联机式的信息储藏所。
- 万维网用链接的方法能非常方便地从因特网上的一个站点访问另一个站点,从而主动地按需获取丰富的信息。
- 这种访问方式称为“链接”。
- 万维网提供分布式服务:
1.1超媒体与超文本
- 万维网是分布式超媒体(hypermedia)系统,它是超文本(hypertext)系统的扩充。
- 一个超文本由多个信息源链接成。利用一个链接可使用户找到另一个文档。这些文档可以位于世界上任何一个接在因特网上的超文本系统中。超文本是万维网的基础。
- 超媒体与超文本的区别是文档内容不同。超文本文档仅包含文本信息,而超媒体文档还包含其他表示方式的信息,如图形、图像、声音、动画,甚至活动视频图像。
1.2.万维网的工作方式
- 万维网以客户服务器方式工作。
- 浏览器就是在用户计算机上的万维网客户程序。万维网文档所驻留的计算机则运行服务器程序,因此这个计算机也称为万维网服务器。
- 客户程序向服务器程序发出请求,服务器程序向客户程序送回客户所要的万维网文档。
- 在一个客户程序主窗口上显示出的万维网文档称为页面(page)。
1.3.万维网必须解决的问题
1.怎样标志分布在整个因特网上的万维网文档?
- 使用统一资源定位符 URL (Uniform Resource Locator)来标志万维网上的各种文档。
- 使每一个文档在整个因特网的范围内具有唯一的标识符 URL。
2.用什么协议实现万维网上各种超链的链接?
- 在万维网客户程序与万维网服务器程序之间进行交互所使用的协议,是超文本传送协议 HTTP (HyperText Transfer Protocol)。
- HTTP 是一个应用层协议,它使用 TCP 连接进行可靠的传送,一般使用80端口。
3.怎样使各种万维网文档都能在因特网上的各种计算机上显示出来,同时使用户清楚地知道在什么地方存在着超链?
- 超文本标记语言 HTML (HyperText Markup Language)使得万维网页面的设计者可以很方便地用一个超链从本页面的某处链接到因特网上的任何一个万维网页面,并且能够在自己的计算机屏幕上将这些页面显示出来。
二、统一资源定位符 URL
- 统一资源定位符 URL 是对可以从因特网上得到的资源的位置和访问方法的一种简洁的表示。
- URL 给资源的位置提供一种抽象的识别方法,并用这种方法给资源定位。
2.1.URL 的一般形式
- 由以冒号隔开的两大部分组成,并且在 URL 中的字符对大写或小写没有要求。
- URL 的一般形式是:
2.2.使用 HTTP 的 URL
使用 HTTP 的 URL 的一般形式:
- "http"——表示使用HTTP协议;
- "://"——冒号和两个左斜杠是规定的格式;
- ""——表示主机的域名;
- ""——HTTP的默认端口号是80,通常可省略;
- ""——表示文件路径,若再省略文件的项,则 URL 就指到因特网上的某个主页(home page)。
三、超文本传输协议HTTP
3.1.HTTP 的操作过程
- 为了使超文本的链接能够高效率地完成,需要用 HTTP 协议来传送一切必须的信息。
- 从层次的角度看,HTTP 是面向事务的(transaction-oriented)应用层协议,它是万维网上能够可靠地交换文件(包括文本、声音、图像等各种多媒体文件)的重要基础。
3.2.HTTP 的报文结构
HTTP 有两类报文:
- 请求报文——从客户向服务器发送请求报文。
- 响应报文——从服务器到客户的回答。
- 由于 HTTP 是面向正文的(text-oriented),因此在报文中的每一个字段都是一些 ASCII 码串,因而每个字段的长度都是不确定的。
3.3.HTTP 请求报文的结构
报文由三个部分组成,即开始行、首部行和实体主体。在请求报文中,开始行就是请求行。
方法字段——对所请求的对象进行的操作,即一些命令。请求报文的类型是由它所采用的方法决定的;
HTTP 请求报文的一些方法
- OPTION:请求一些选项的信息;
- GET:请求读取由 URL所标志的信息;
- HEAD:请求读取由 URL所标志的信息的首部;
- POST:给服务器添加信息(例如,注释);
- PUT:在指明的 URL下存储一个文档;
- DELETE:删除指明的 URL所标志的资源;
- TRACE:用来进行环回测试的请求报文;
- CONNECT:用于代理服务器;
- URL字段——所请求的资源的 URL;
版本字段——表示 HTTP 的版本;
3.4.HTTP 响应报文的结构
响应报文的开始行是状态行。状态行包括三项内容,即 HTTP 的版本,状态码,以及解释状态码的简单短语。
状态码
状态码都由三个数字组成:
- 1xx 表示通知信息的,如请求收到了或正在进行处理;
- 2xx 表示成功,如接受或知道了;
- 3xx 表示重定向,表示要完成请求还必须采取进一步的行动;
- 4xx 表示客户的差错,如请求中有错误的语法或不能完成;
- 5xx 表示服务器的差错,如服务器失效无法完成请求;
3.5.超链接的工作过程
用户点击"链接"后所发生的事件 :
浏览器分析"文本"超链指向页面的 URL;
浏览器向 DNS 请求解析 www.123.edu.cn 的 IP 地址;
域名系统 DNS 解析出服务器的 IP 地址;
浏览器与服务器建立 TCP 连接
浏览器发出取文件命令:
GET /chn/yxsz/index.htm。
服务器给出响应,把文件 index.htm 发给浏览器。
TCP 连接释放。
浏览器显示“文本”文件 index.htm 中的所有文本。
3.6.请求一个万维网文档所需的时间
RTT表示数据包(报文)往返时间。
3.7.持续连接 (persistent connection)
- HTTP/1.1 协议使用持续连接。
- 万维网服务器在发送响应后仍然在一段时间内保持这条TCP连接,使同一个客户(浏览器)和该服务器可以继续在这条TCP连接上传送后续的 HTTP 请求报文和响应报文。
- 这并不局限于传送同一个页面上链接的文档,而是只要这些文档都在同一个服务器上就行。
3.8.持续连接的两种工作方式
- 非流水线方式:客户在收到前一个响应后才能发出下一个请求。与非持续连接相比节省了建立 TCP 连接所需的一个 RTT 时间。但服务器在发送完一个对象后,其 TCP 连接就处于空闲状态,浪费了服务器资源。
- 流水线方式:客户在收到 HTTP 的响应报文之前就能够接着发送新的请求报文。一个接一个的请求报文到达服务器后,服务器就可连续发回响应报文。使用流水线方式时,客户访问所有的对象只需花费一个 RTT时间,使 TCP 连接中的空闲时间减少,提高了下载文档效率。
3.9.在服务器上存放用户的信息
- 万维网站点使用 Cookie 来跟踪用户。
- Cookie 表示在 HTTP 服务器和客户之间传递的状态信息。
- 使用 Cookie 的网站服务器为用户产生一个唯一的识别码。利用此识别码,网站就能够跟踪该用户在该网站的活动。
四、代理服务器 (proxy server)
- 代理服务器(proxy server)又称为万维网高速缓存(Web cache),它代替浏览器发出 HTTP 请求;
- 可以在代理服务器中设置哪些网段的计算机能通过代理服务器上网,能通过代理服务器上什么网;
- 万维网高速缓存把最近的一些请求和响应暂存在本地磁盘中;
- 当与暂时存放的请求相同的新请求到达时,万维网高速缓存就把暂存的响应发送出去,而不需要按 URL 的地址再去因特网访问该资源。
4.1.使用代理服务器的场合
1.节省内网访问 Internet 的带宽。
安装代理服务器前:
内网的所有计算机上网的流量都通过这条2Mb/s的链路,这会造成该链路时延过大。
安装了代理服务器后:
- 浏览器访问因特网的服务器时,要先与校园网的代理服务器建立 TCP 连接,并向代理服务器发出 HTTP 请求报文。
- 若代理服务器已经存放了所请求的对象,则将此对象放入 HTTP 响应报文中返回给浏览器。
- 否则,代理服务器就代表发出请求的用户浏览器,与因特网上的源点服务器建立 TCP 连接,并发送 HTTP 请求报文。
- 源点服务器将所请求的对象放在 HTTP 响应报文中返回给校园网的代理服务器。
- 代理服务器收到此对象后,先复制在其本地存储器中(为今后使用),然后再将该对象放在 HTTP 响应报文中,通过已建立的 TCP 连接,返回给请求该对象的浏览器。
2.绕过路由器的防火墙访问外网
- 路由器设置的防火墙会拦截目标地址或源地址为特定地址的数据包。
- 路由器只识别数据包的源地址和目标地址,不关心数据包内容。
如图所示,在国内的用户PC1想访问国外的某些网站时,路由器收到PC1的请求后,判断出目标地址为国外的某网于是路由器的防火墙截断了该请求,导致PC1无法成功访问;
如果PC1通过国外的代理服务器中转就可以访问外网。PC1发出的请求数据包目标地址为国外某代理服务器,请求数据包到达路由器时,路由器判断出数据包的目标地址不是防火墙设置的屏蔽地址,故能够把数据包传输给国外的代理服务器,代理服务器再把数据包传输给外网的源服务器;从外网返回的数据包通过代理服务器中转之后到达路由器时源地址变为代理服务器地址,故能绕开路由器的防火墙,成功到达PC1;由此PC1能够访问外网。
3.避免IP地址被跟踪
当我们在网上发表言论时,有时候隐藏个人计算机的IP地址能够带来很大便利。通过代理服务器在网络上进行活动能够有效地防止个人计算机地IP地址被跟踪。
原理为改变数据包地目标地址或源地址,过程与"上2"类似。
五、浏览器
浏览器就是在用户计算机上的万维网客户程序,相当于客户端。
5.1.浏览器的结构
5.2.浏览器中的缓存
- 浏览器将它取回的每一个页面副本都放入本地磁盘的缓存中。
- 当用户用点击某个超链接时,浏览器首先检查磁盘的缓存。若缓存中保存了超链接的URL指向的文件,浏览器就直接从缓存中得到该文件副本而不必从网络获取,这样就明显地改善浏览器的运行特性。 。
- 但缓存要占用磁盘大量的空间,而浏览器性能的改善只有在用户再次查看缓存中的页面时才有帮助。许多浏览器允许用户调整缓存策略。
万维网(WWW)的更多相关文章
- 除非 Windows Activation Service (WAS)和万维网发布服务(W3SVC)均处于运行状态,否则无法启动网站。目前,这两项服务均处于停止状态。
win7 IIS 所有网站都停止了,启动提示: 除非 Windows Activation Service (WAS)和万维网发布服务(W3SVC)均处于运行状态,否则无法启动网站.目前,这两项服务均 ...
- 万维网发布服务(w3svc)已停止,除非万维网发布服务(w3svc)正在运行。
近来遇到一个IIS服务启动问题,重启服务器PC后,网站启动的时候,提示“ 万维网发布服务(w3svc)已停止,除非万维网发布服务(w3svc)正在运行”. 解决方法: 点击"开始" ...
- 自由软件之父、Google+设计者、Java之父、Linux之父、万维网之父、Vi编辑器之父、苹果Lisa电脑界面设计、微软首席软件架构师
自由软件之父.Google+设计者.Java之父.Linux之父.万维网之父.Vi编辑器之父.苹果Lisa电脑界面设计.微软首席软件架构师 理查德·斯托曼(Richard Stallman) 理查德· ...
- 计算机网络之万维网WWW
万维网 WWW (World Wide Web)并非某种特殊的计算机网络,而是一个大规模的.联机式的信息储藏所. 万维网用链接的方法能非常方便地从因特网上的一个站点访问另一个站点,从而主动地按需获取丰 ...
- 万维网WWW详解
万维网WWW(World Wide Web)并非某种特殊的计算机网络,万维网是一个个大规模的.联机式的信息储藏所,英文简称Web. 万维网使用链接的方式能非常方便地从英特网上的一个站点访问到一个站点, ...
- 万维网(WWW)
简介:万维网(WWW)是 Internet上最为普及的一种应用服务,它是由成千上万万维网站点(简称网站)组成的一个联机信息存储系统. 万维网的工作模式采用客户机/服务器方式,在用户计算机上运行浏览器作 ...
- 计算机网络之互联网|因特网|万维网|HTTP|HTML之间的关系辨析
本博文基于知乎"Web 是什么意思?"一问而引起.(本文均属于博主从知乎上自身所答搬运而至). 如无特殊声明,括号()内以分号分隔的名词均等效. 本文如无特殊引用声明,则所有内容版 ...
- [区分] 1.计算机网络/internet(互联网) 2.Internet(因特网) 3.www/web(万维网)
internet(互联网或互连网)是一个通用名词,泛指由多个计算机网络互联而成的虚拟网络.Inernet(因特网)是一个专用名词,指当前全球最大的.开放的.由众多网络相互连接而成的特定的计算机网络,它 ...
- 计算机网络 --万维网www
万维网是一个分布式的超媒体系统,客户程序向服务器程序发出请求,服务器程序向客户程序送回客户所需要的万维网文档.万维网必须解决的几个问题:1.怎样标志分布在整个因特网上的万维网文档?答:万维网使用统一的 ...
- w3c万维网的介绍和html基本构成
怎么与浏览器交互? 1.鼠标 2.键盘输入 w3c标准: 中文名:万维网联盟!外文名:world wide web cansortium万维网联盟创建于1994年,是web技术领域最具权威个影响的国际 ...
随机推荐
- Python字典基础
- C# 查找其他应用程序并打开、显示、隐藏、关闭的API
软件开发中,有时迫不得已要用到第三方的软件,这时就涉及到在C#应用程序需要对第三方软件打开.显示.隐藏以及关闭. 下面列举了几个常用的方式 打开应用程序,下面是2种简单用法: 第一种: public ...
- 用冒泡法对5个Date类型的数据进行排序
import java.util.*; public class OrderDate{ public static void main(String[] args){ Date[] days = ne ...
- [LC] 452. Minimum Number of Arrows to Burst Balloons
There are a number of spherical balloons spread in two-dimensional space. For each balloon, provided ...
- day31-hmac模块检测客户端是否合法
#如果客户端知道服务端的ip地址和端口,就可以连接服务端,信息不安全. #使用os.urandam随机生成32位bytes,然后hmac加密之后再发送给客户端. #server: import soc ...
- AngularJS中格式化日期为指定格式字符串
var date = $filter('date')(new Date(),'MM/dd/yyyy');
- LeetCode Day 7
LeetCode0012 罗马数字包含以下七种字符: I, V, X, L,C,D 和 M. 字符 I V X L C D M 数值 1 5 10 50 100 500 1000 例如, 罗马数字 2 ...
- Oracle 10G 服务端的升级
第一步:备份 rman target / backup full database plus archivelog; 第二步:升级 解压升级包到soft目录下,修改所有者 chown -R oracl ...
- win10安装inventor失败,怎么强力卸载删除注册表并重新安装
一些搞设计的朋友在win10系统下安装inventor失败或提示已安装,也有时候想重新安装inventor的时候会出现本电脑windows系统已安装inventor,你要是不留意直接安装invento ...
- LibreOJ β Round #2」贪心只能过样例
题目友链:https://loj.ac/problem/515 话说这题蛮简单,bitset暴力直接过. 话不多说,上代码! #include <bits/stdc++.h> using ...