计算机网络基础——WWW万维网

万维网

万维网(World Wide Web, WWW)是一个大规模的、联机式的信息储藏所,英文简称Web,万维网是一个分布式的超媒体(hypermedia),是超文本(hypertext)系统的扩充。万维网以B/S方式(浏览器/服务器)工作,用户主机中的浏览器是万维网客户机程序,万维网文档所驻留的主机运行服务器程序,浏览器向服务器发送请求,服务器向浏览器返回请求的万维网文档。

  • 万维网使用统一资源定位符来表示万维网上的各种文档,每个文档在整个互联网范围内有唯一的标识符。

  • 万维网客户程序与万维网服务器程序之间的交互遵循严格的协议,即超文本传输协议

  • 万维网使用超文本标记语言,使得万维网页面的设计者可以很方便地使用链接从本页面的某处链接到互联网上的任何一个万维网网页,并且能够在自己的主机屏幕上将这些页面显示出来

超文本

超文本(hypertext)即为包含指向其他文档链接的文本,由多个信息源链接成,这些信息源可以分布在世界各地且数目不限,超文本是万维网的基础

超媒体

超媒体(hypermedia)与超文本的区别是文档内容不同,超文本仅包含文本信息,而超媒体文档还包含其他表示方式的信息,如图形、图像、声音、动画及视频图像等。

工作流程

  • Web用户使用浏览器(指定URL)与Web服务器建立连接,并发送浏览请求
  • Web服务器将URL转换为文件路径,并返回信息给Web浏览器
  • 通信完成,关闭连接

统一资源定位符

统一资源定位符(Uniform Resource Locator, URL)是用来表示从互联网上得到的资源位置和访问这些资源的方法,URL相当于一个文件名在网络范围的扩展,URL为资源的位置提供一种抽象的识别方法,并用这种方法给资源定位,使得系统可以对资源进行各种操作。互联网上的所有资源都有一个唯一确定的URL。

资源

资源指的是互联网上可以被访问的任何对象,包括文件目录、文件、文档、图像、声音以及与互联网相连的任何形式数据

URL格式

<protocol>://<hostname>:<port>/<path>

  • <protocol> : 使用的协议,如HTTP, FTP
  • <hostname> : 存放资源的主机在互联网中的域名或IP地址
  • <port> : 服务端进程端口号
  • <path> : 资源在主机中的路径

超文本传输协议

超文本传输协议(HyperText Transfer Protocol, HTTP)是一个简单的请求-响应协议,基于TCP定义了浏览器如何向万维网服务器请求万维网文档以及万维网服务器如何将文档传送给浏览器,HTTP是面向事务(transcation-oriented)的,是万维网能够可靠传输文件的重要基础。

万维网的服务器进程监听80端口,若有浏览器向其发出连接建立请求,会与其建立TCP连接,TCP连接建立成功后,浏览器向服务器发送浏览某个页面的请求,服务器返回所请求的页面作为响应,结束后释放TCP连接。

HTTP规定HTTP客户与HTTP服务器之间的每次交互,都由一个ASCII码串构成的请求和一个类似的通用互联网扩充(即类MIME(MIME-like))的相应组成,HTTP报文采用TCP连接传送。

无连接

HTTP虽然使用面向连接的TCP作为传输层协议,但HTTP本身是无连接的,即通信双方在交换HTTP报文之前不需要先建立HTTP连接

无状态

HTTP是无状态(stateless)的,同一个客户第二次访问同一服务器上的页面时,服务器的响应与第一次被访问时是相同的,该特性使得服务器更容易支持大量并发的HTTP请求

HTTP/1.0

HTTP/1.0采用非持续连接的方式,在建立TCP连接的前两部分完成后,万维网用户把HTTP请求报文作为TCP连接的三报文握手中的第三次报文的数据,发给万维网服务器,服务器收到HTTP请求报文后,将所请求的文档作为响应报文返回给客户。

请求一个万维网文档所需的时间是该文档的传输时间和两倍往返时间(RTT)之和,其中一个RTT用于连接TCP连接,另一个RTT用于请求和接收万维网文档。

HTTP/1.0使得每请求一个文档就需要有两倍RTT开销,而万维网客户和服务器每次建立新的TCP请求都要分配缓存和变量。

HTTP/1.1

HTTP/1.1采用持续连接的方式,持续连接指的是万维网服务器在发送响应后仍然在一段时间内保持这条连接,使同一个浏览器和该服务器可以继续在这条连接上传送后续的HTTP请求和响应报文

非流水线方式

非流水线(without pipelining)方式,浏览器收到前一个响应后才能发出下一个请求,在TCP连接已经建立后,客户每访问一次对象都要花费一个RTT延迟,相比非持续连接节省了建立TCP连接所需的一个RTT时间。

流水线方式

流水线(with pipelining)方式,浏览器在收到一个HTTP响应请求之前就能够接着发送新的请求报文,一个接一个的请求报文到达服务器之后,服务器就可以连续发回响应报文。流水线工作方式使浏览器访问所有对象只需花费一个RTT延迟,使TCP的空闲时间减少,提高了下载文档的效率

代理服务器

代理服务器(Proxy Server)是一种网络实体,也称万维网高速缓存(Web Cache),它将最近的一些请求和响应暂存在本地磁盘中,若代理服务器发现请求与其暂存的请求相同,就直接返回暂存响应而不需要按URL地址去互联网访问该资源;否则,代理服务器代表发送请求的浏览器,向互联网中的源点浏览器(origin server)建立TCP连接并发送HTTP请求报文,源点服务器把所请求的对象放在HTTP响应报文中返回给代理服务器,代理服务器收到该对象后,先复制到本地存储器中再将放到HTTP响应报文中发送给浏览器。代理服务器减少了访问互联网的时延。

HTTP报文结构

HTTP报文是面向文本(text-oriented)的,报文中的每个字段都是一些ASCII码串,各个字段长度不确定,分为请求报文和响应报文,两种报文都由开始行、首部行和实体主体组成

报文结构

开始行

开始行用于区分请求报文和响应报文,请求报文中的开始行称为请求行,响应报文中的开始行则称为状态行,开始行的三个字段以空格分科,最后以CRLF代表回车和换行

首部行

首部行用来说明浏览器、服务器或报文主体的一些信息,首部行可以有多行,每个首部行都有首部字段名和值,每行以回车换行CRLF结束,整个首部行结束后以一个空行(CRLF)与实体主体分隔

实体主体

实体主体在请求报文和响应报文中一般不用

请求报文

请求报文由浏览器发送给服务器,请求报文的请求行包含方法、请求资源URL和HTTP版本三个内容

方法 操作意义
OPTION 请求一些选项信息
GET 请求读取由URL所标志的信息
HEAD 请求读取由URL所标志的信息的首部
POST 给服务器添加信息
PUT 在指明的URL下存储一个文档
DELETE 删除指明的URL所标志的资源
TRACE 用来进行环回测试的请求报文
CONNECT 用于代理服务器

响应报文

响应报文由服务器发给浏览器,响应报文的状态行包含HTTP版本、状态码和解释状态码的简单短语三部分组成

状态码(Status-Code)都是三位数字,分为5类,5类状态码均已不同数字开头

状态码前缀 意义
1xx 通知信息,收到或正在处理
2xx 接受
3xx 重定向,完成请求并进行下一步行动
4xx 差错,语法错误或不能完成
5xx 服务器差错,服务器失效或无法完成请求

Cookie

Cookie是一个文本文件,用来表示在HTTP服务器和梁礼文之间传递的状态信息,万维网站点可以Cookie来跟踪用户。

万维网文档

超文本标记语言

超文本标记语言(HyperText Markup Language)是一种制作万维网页面的标准,用于消除不同计算机之间信息交流的障碍,HTML并不是应用层协议,而是万维网浏览器使用的一种语言。
HTML文档是ASCII码文件,定义了许多用于排版的命令,浏览器对HTML文档中的各种标签进行解释且仅当HTML文档以htmhtml为文件后缀名时。浏览器对不支持的标签会忽略但仍显示其中的文本。

可扩展标记语言

可扩展标记语言(eXtensible Markup Language, XML)是允许用户对自己的标记语言信息定义的源语言,用于传输数据,而HTML用于显示数据,XML可以用来标记数据、定义数据类型,XML将用户界面与结构化数据分离,是一种简单的、平台无关并广泛采用的标准,XML是对HTML的补充。

层叠样式表

层叠样式表(Cascading Style Sheets, CSS)是一种样式表语言,用于为HTML文档定义布局,HTTML用于结构化内容,CSS用于格式化结构化的内容。

动态文档

动态文档(Dynamic document)是指文档的内容是在浏览器访问万维网服务器时才由应用程序动态创建的,浏览器氢气到达时,有万维网服务器运行的另一个应用程序处理并将应用程序的输出作为对浏览器的响应。

动态文档和静态文档的主要区别在于服务器一端,文档内容的生成方法不同。

万维网增加了通用网关接口(Common Gateway Interface, CGI)机制来定义动态文档应如何创建,输入数据应如何提供给应用程序及如何使用输出结果。通用表示CGI标准所定义的规则对其他任何语言通用,网关表示CGI程序还可能访问其他的服务器资源(数据库、图形软件包等),接口表示CGI有些已定义好的变量和调用可供其他CGI程序调用。

万维网服务器增加的应用程序称为CGI程序,正式名字为CGI脚本(脚本被另一个程序(解释程序)而不是计算机处理机来解释或执行)

活动万维网文档

动态文档一旦建立所包含的信息无法及时更新,活动文档将提供屏幕连续更新的工作交给浏览器端,每当浏览器请求一个活动文档时,服务器返回一段活动文档程序副本,使该程序副本在浏览器运行并直接与用户进行交互,连续改变屏幕的显式。由于活动文档不需要服务器的连续更新传送,对网络带宽的要求也不会太高。

参考

谢希仁. 计算机网络(第7版). 电子工业出版社, 2017.
王道考研计算机网络

最后

  • 由于博主水平有限,不免有疏漏之处,欢迎读者随时批评指正,以免造成不必要的误解!

计算机网络基础——WWW万维网相关推荐

  1. 计算机网络按信号频带占用方式,[大学计算机应用基础第六章计算机网络基础.ppt...

    [大学计算机应用基础第六章计算机网络基础 第六章 计算机网络基础 中国金桥信息网(CHINAGBN )由原电子工业部归口管理,它是一个把国务院.各部委专用网络与各省市自治区.大中型企业以及国家重点工程 ...

  2. 五年一贯制专转本计算机网络真题,金陵科技学院2017年五年一贯制专转本考试大纲(计算机网络基础)...

    一.参考书目: <计算机网络技术与应用(第2版)>,段标.张玲主编,电子工业出版社,出版时间:2011年12月. 二.考试形式:闭卷,考试时间90分钟 三.考试内容和要求 (一)考试要求 ...

  3. 《计算机网络基础》考试大纲

    <计算机网络基础>考试大纲 一.参考书目: <计算机网络技术与应用(第2版)>,段标.张玲主编,电子工业出版社,出版时间:2011年12月. 二.考试形式:闭卷,考试时间90分 ...

  4. Android面试之计算机网络基础

    前言 :开始总结一份属于自己的面试资料.网上虽有,但是收藏和浏览真的不如理解和吸纳.加油.. 一.各层结构和功能,及都有哪些协议 OSI体系结构为7层,这里我们按TCP/IP体系结构讲五层来讲. 物理 ...

  5. 【Android开发】计算机网络基础知识点,如何完成网络请求过程?

    (一)计算机网络基础知识:从一次完整的网络请求过程分析 (1)域名解析 1.1)域名与ip地址 (1)ip地址:ip地址是一个32位(4字节)的二进制数(IPV4),常见格式为:192.168.1.1 ...

  6. 计算机网络基础知识及面试总结-这应该是最全的了

    文章目录 计算机网络基础知识及面试总结 1 基本概念 1.1 TCP/IP协议栈,OSI参考模型 1.2 简要的介绍各层的作用 1.3 常见的协议 2 应用层 2.1 HTTP请求有哪些常见状态码? ...

  7. 优秀课件笔记之计算机网络基础

    1.本文所以内容来自 著名高校课件和学生笔记(校园里面经常见到有人高价买笔记) 2.任课教师不会提供参考文献,所以只能对作者表示感谢,如果引用了您的作品,可以用回 复方式补充参考文献. 3.我不对文章 ...

  8. 第五章 网络 之 计算机网络基础(一)

    文章目录 (一)计算机网络基础知识:从一次完整的网络请求过程分析 (1)域名解析 1.1)域名与ip地址 1.2)域名系统(DNS--Domain Name System) a)DNS本质 b)域名的 ...

  9. 计算机网络基础之应用层

    温故: 网络层在OSI七层中为位于第三层,同时也是通信子网的最高层,物理层传输的单位是比特流,数据链路层传输的是数据帧,而网络层的传输单位是数据包,传输层的传输单位是报文.这里还要做一个比较,物理层要 ...

最新文章

  1. 2022-2028年中国智能制造装备产业深度调研及投资前景预测报告
  2. class pybind11::module 没有成员 def
  3. POJ-1655 Balancing Act 树的重心
  4. boost::copy_n相关的测试程序
  5. 手把手教会你(单/多)文件上传(并修改文件默认的最大最小值)
  6. UITextfield键盘相关设置
  7. FPGA相关术语(一)
  8. linux 搭建文件服务器(vsftpd)
  9. U盘安装ESXI 6.7,并使用U盘启动服务器
  10. 六、C++离散傅里叶逆变换
  11. 【POJ】2676-Sudoku 【51Nod】1211-数独(DFS)
  12. 右键文件或文件夹或空白处弹出菜单包含自己软件快捷方式
  13. 2012服务器系统下怎么分区,Windows Server 2012之更改系统分区
  14. mysql入门 ,及详细步骤
  15. matlab设置坐标数值,Matlab中描点及坐标设置相关
  16. C语言数据结构-实验一 C语言回顾及算法分析
  17. mysql经常断电_MySQL突然断电异常解决
  18. 哈夫曼编码--英语文章的编码译码(c/c++)
  19. 牛客小白月赛20 E.区区区间
  20. excel如何数据汇总之多工作簿

热门文章

  1. 学习方法: 《How to Study in College》
  2. 论文阅读(21 AAAI)Mind-the-Gap Unsupervised Domain Adaptation for Text-Video Retrieval
  3. 各类支付通道大全以及支付通道选择
  4. 离散小波变换(DWT)
  5. linux+cs1.6服务器搭建,Linux玩CS反恐精英的方法
  6. matlab画线的形状颜色
  7. c语言内部收益率,内部收益率 (C语言代码)
  8. 请设计一个宠物社交APP。
  9. python关机usb端口_使用python关闭windows中的特定USB端口
  10. 安装深度linux系统卡住不动,Linux安装系统卡住