什么是超文本(超文本的结构是什么)
4、万维网和HTTP协议万维网概述万维网WWW(WorldWideWeb)是一个大规模、联机式的信息储藏所,简称Web。万维网用链接的方法能非常方便地从互联网上的一个站点访问/链接另一个站点,从而
4、万维网和HTTP协议万维网概述
万维网WWW(World Wide Web)是一个大规模、联机式的信息储藏所,简称Web。万维网用链接的方法能非常方便地从互联网上的一个站点访问/链接另一个站点,从而主动地按需获取丰富的信息。
万维网是一个分布式的超媒体系统,它是超文本系统的扩充。
超文本:指包含指向其他文档的链接的文本。也就是说,一个超文本由多个信息源链接组成,而这些信息源可以遍布在世界各地,并且数目也是不受限制的,利用一个链接可使用户找到远在异地的另一个文档,而这又可链接到其他文档(以此类推)。这些文档可以位于世界上任何一个接在互联网上的超文本系统中。超文本是万维网的基础。
统一资源定位符URL
统一资源定位符URL(Uniform Resource Locator):是用来表示从互联网上得到的资源位置和访问这些资源的方法。
互联网上的所有资源,都有一个唯一确定的URL。URL相当于一个文件名在网络范围的扩展,它的一般形式由下面四个部分组成:
<协议>://<主机>:<端口>/<路径>
URL里面的字母不分大小写,但为了便于阅读,有时故意使用一些大写字母。
超文本传送协议HTTP1.HTTP的操作过程
HTTP协议定义了浏览器怎样向万维网服务器请求万维网文档,以及服务器怎样把文档传送给浏览器。
HTTP协议是面向事务的应用层协议,它是万维网上能够可靠地交换文件(包括:文本、声音、图像等各种多媒体文件)的重要基础。
每个万维网网点都有一个服务器进程,它不断地监听TCP的端口80,以便发现是否有浏览器向它发出连接建立请求。一旦监听到连接建立请求并建立了TCP连接之后,浏览器就向万维网服务器发出浏览某个页面的请求,服务器接着就返回所请求的页面作为响应。最后,TCP连接就被释放了。在浏览器和服务器之间的请求和响应的交互,必须按照规定的格式和遵循一定的规则。这些格式和规则就是超文本传送协议HTTP。
HTTP协议是无状态的,即同一个客户第二次访问同一个服务器上的页面时,服务器的响应与第一次被访问时的相同(假设页面没有更新),因为服务器不记得曾经访问过的这个客户,也不记得为它服务过多少次。HTTP的无状态特性简化了服务器的设计,使服务器更容易支持大量并发的HTTP请求。
HTTP/1.0的主要缺点:
每请求一个文档就要有两倍RTT的开销。若一个主页上有很多链接的对象需要依次进行链接,那么每一次链接下载都导致2RTT的开销。另一种开销就是万维网客户和服务器每一次建立新的TCP连接都要分配缓存和变量。特别是万维网服务器往往要同时服务于大量客户的请求,所以这种非持续连接会使万维网服务器的负担很重。好在浏览器都能够打开5~10个并行的TCP连接,而每一个TCP连接处理客户的一个请求。因此,使用并行TCP连接可以缩短响应时间。
HTTP/1.1:
较好地解决了HTTP/1.0两倍RTT时间开销的问题。它使用持续连接。所谓持续连接就是万维网服务器在发送响应后仍然在一段时间内保持这条连接,使同一个客户(浏览器)和该服务器可以继续在这条连接上传送后续HTTP请求报文和响应报文。这并不局限于传送同一个页面上链接的文档,而是只要这些文档都在同一个服务器上就行。
HTTP/1.1的持续连接有两种工作方式:非流水线方式和流水线方式。非流水线客户访问一次对象需要一个RTT时间,流水线客户访问所有的对象只需要花费一个RTT时间。
2.代理服务器
代理服务器是一种网络实体,它又称为万维网高速缓存。代理服务器把最近的一些请求和响应暂存在本地磁盘中。当新请求到达时,若代理服务器发现这个请求与暂时存放的请求相同,就返回暂存的响应,而不需要按URL的地址再次去互联网访问该资源。代理服务器可在客户端或服务器端工作,也可在中间系统上工作。
图中校园网使用代理服务器访问互联网的过程如下:
校园网计算机中的浏览器访问互联网的服务器请求服务时,就先和校园网的代理服务器建立TCP连接,并向代理服务器发出HTTP请求报文;
若代理服务器已经存放了所请求的对象,代理服务器就把这个对象放入HTTP响应报文中返回给计算机的浏览器;
否则,代理服务器就代表发出请求的用户浏览器,与互联网上的源点服务器建立TCP连接,并发送HTTP请求报文;
源点服务器把所请求的对象放在HTTP响应报文中返回给校园网的代理服务器;
代理服务器收到这个对象后,先复制在自己的本地存储器中(留待下次用),然后再把这个对象放在HTTP响应报文中,通过已建立的TCP连接,返回给请求该对象的浏览器。
3.HTTP的报文结构
HTTP有两类报文:请求报文和响应报文
由于HTTP是面向文本的,因此在报文中的每一个字段都是一些ASCII码串,因而各个字段的长度都是不确定的。
HTTP请求报文和响应报文都是由三个部分组成:开始行(请求报文中叫请求行、响应报文中叫状态行)、首部行和实体主体。
请求报文的请求行的第一个字段“方法”,常用的如下表所示:
HTTP响应报文:
响应报文的状态行包括三项内容:HTTP的版本、状态码以及解释状态码的简单短语。
状态码都是三位数字的,分为5大类:
1xx 表示通知信息,如请求收到了或者正在处理;2xx 表示成功,如接受或知道了;3xx 表示重定向,如要完成请求还必须采取进一步的行动;4xx 表示客户的差错,如请求中有错误的语法或不能完成;5xx表示服务器的差错,如服务器失效无法完成请求。
如下面三种常遇见的响应报文中的状态行:
4. 在服务器上存放用户的信息
因为HTTP是无状态的协议,所以服务器识别不了用户,但是某些场景又需要服务器能够识别出用户,比如下面这个场景:
在网上购物时,一个顾客要购买多种物品。当他把选好的一件物品放入“购物车”后,他还要继续浏览和选购其他商品。因此,服务器需要记住用户身份,使他接着选购的一些物品能够放入同一个“购物车”中,这样便于集中结账。
要做到上面的场景的需求,需要在HTTP中使用Cookie,其在HTTP服务器和客户之间传递状态信息。
Cookie的工作过程:
当用户A浏览某个使用Cookie的网站时,该网站的服务器就为A产生一个唯一的识别码,并以此作为索引在服务器的后端数据库中产生一个项目。接着在给A的HTTP响应报文中添加一个叫做Set-cookie的首部行。这里的“首部字段名”就是“Set-cookie”,而后面的“值”就是赋予该用户的“识别码”。例如这个首部行是这样的:
Set-cookie:31d4d96e407aad42
当A收到这个响应时,其浏览器就在它管理的特定Cookie文件中添加一行,其中包括这个服务器的主机名和Set-cookie后面给出的识别码。当A继续浏览这个网站时,每发送一个HTTP请求报文,其浏览器就会从其Cookie文件中取出这个网站的识别码,并收到HTTP请求报文的Cookie首部行中:
Cookie:31d4d96e407aad42
于是,这个网站就能跟踪用户31d4d96e407aad42在该网站的活动。需要注意的是,服务器并不需要知道这个用户的真实姓名以及其他的信息。但服务器能够知道用户31d4d96e407aad42在什么时间访问了哪些页面,以及访问这些页面的顺序。如果A是在网上购物,那么这个服务器可以为A维护一个所购物品的列表,使A在结束这次购物时可以一起付费。
万维网文档超文本标记语言
要使任何一台计算机都能显示出任何一个万维网服务器上的页面,就必须解决页面制作的标准化问题。超文本标记语言HTML(HyperText MarkUp Language)就是一种制作万维网页面的标准语言,它消除了不同计算机之间信息交流的障碍。
HTML利用很多“标签”用于文档的排版。
需要注意的是仅当HTML文档是以.html或.htm为后缀时,浏览器才对这样的HTML文档的各种标签进行解释。如果HTML文档是以.txt为后缀的,则HTML解释程序就不对标签进行解释,而浏览器只能看见原来的文本文件。
5、电子邮件电子邮件概述
电子邮件把邮件发送到收件人使用的邮件服务器,并放在其中的收件人“邮箱”里,收件人可在自己方便时上网到自己使用的邮件服务器进行读取。
发送和接收一个邮件的几个重要步骤:
1、发件人编写好邮件内容。然后把邮件通过SMTP协议发送给发送方的邮件服务器;
2、SMTP服务器收到用户发来的邮件后,就把邮件临时存放在邮件缓存队列中,等待发送到接收方的邮件服务器中;
3、发送方邮件服务器SMTP客户与接收方邮件服务器的SMTP服务器建立TCP连接,然后就把邮件缓存队列中的邮件依次发送出去;
4、运行在接收方邮件服务器中的SMTP服务器进程收到邮件后,把邮件放入收件人用户邮箱中,等待收件人进行读取;
5、收件人在打算收信时,就运行计算机中的用户代理,使用POP3或者IMAP协议读取发送给自己的邮件。
简单邮件传送协议SMTP
STMP(Simple Mail Transfer Protocol)规定了两个相互通信的SMTP进程之间应该如何交换信息。
SMTP规定了14条命令和21种应答信息。下面介绍发送和接收方的邮件服务器之间的SMTP通信的三个阶段的主要命令和响应信息。
1、连接建立
发件人的邮件发送到发送方邮件服务器的邮件缓存中后,邮件服务器中的代理SMTP客户每隔一定时间对邮件缓存扫描一次。如发现有邮件,就使用SMTP的熟知端口25与接收方邮件服务器的SMTP服务器建立TCP连接。在连接建立后,接收方SMTP服务器要发出“220 Service ready”(服务就绪)。然后SMTP客户向SMTP服务器发送HELLO命令,附上发送方的主机名。SMTP服务器若有能力接收邮件,则回答“250 OK”,表示已准备好接收。若SMTP服务器不可用,则回答“421 Service not available”(服务不可用)。
注意:SMTP不使用中间邮件服务器,TCP连接总是在发送方和接收方这两个邮件服务器之间直接建立。
2、邮件传送
邮件的传送从MAIL命令开始。MAIL命令后面有发件人的地址。
下面跟着一个或者多个RCPT命令,取决于把同一个邮件发送给一个或多个收件人。
RCPT命令的作用:先弄清楚接收方系统是否已做好接收邮件的准备,然后才发送邮件。这样做是为了避免浪费通信资源,不至于发送了很长的邮件以后才知道地址错误。
再下面就是DATA命令,表示要开始传送邮件的内容了。
3、连接释放
邮件发送完毕后,SMTP客户应发送QUIT命令。SMTP服务器返回的信息是“221(服务关闭)”,表示SMTP同意释放TCP连接。邮件传送的全部过程即结束。
需要说明的是:SMTP传送的邮件是明文,不利于保密。也没有身份鉴别,所以造成很多垃圾邮件。
解决办法:扩充的SMTP(Extened SMTP),记为ESMTP。新增的功能有:客户端的鉴别、服务器接受二进制报文、服务器接受分块传送的大报文、发送前先检查报文的大小以、使用安全传输TLS以及使用国际化地址等。
SMTP有很多缺点,比如:不能传送可执行文件或其他二进制对象、限于传送7位ASCII码、SMTP服务器拒绝超过一段长度的邮件等等。为了解决以上问题,提出了通用互联网邮件扩充MIME,它并没有改变或取代SMTP,但增加了邮件主体的结构并定义了传送非ASCII码的编码规则。
邮件读取协议POP3和IMAP
邮局协议POP3是一个非常简单、但功能有限的邮件读取协议。它最大的特点就是只要用户从POP3服务器读取了邮件,POP3服务器就把该邮件删除。
网际报文存取协议IMAP(Internet Message Access Protocol):用户在自己的计算机上就可以操纵邮件服务器的邮箱,就像在本地操纵一样,因此IMAP是一个联机协议。IMAP最大的好处就是用户可以在不同的地方使用不同的计算机随时上网阅读和处理自己在邮件服务器中的邮件。
强调一下:发件人的用户代理向发送邮件的服务器发送邮件,以及发送邮件服务器向接收方邮件服务器发送邮件,都使用SMTP协议。而POP3或IMAP则是用户代理从接收方邮件服务器上读取邮件所使用的协议。
6、动态主机配置协议
连接到互联网的计算机的协议软件需要配置四个项目:
1、IP地址;2、子网掩码;3、默认路由器的IP地址;4、域名服务器的IP地址;
动态主机配置协议DHCP(Dynamic Host Configuration Protocol),提供了一种机制,称为动态主机配置协议,称为即插即用连网。这种机制允许一台计算机加入新的网络和获取IP地址而不用手工参与。
需要IP地址的主机在启动时就向DHCP服务器广播发送发现报文(DHCPDISCOVER:将目的IP地址全置1,即255.255.255.255,源IP地址全设为0),这时该主机就成了DHCP客户。发送广播报文是因为现在还不知道DHCP服务器在什么地方,因此要发现DHCP服务器的IP地址。.这样,本网段的所有主机都能够收到这个广播包,但是只有DHCP服务器才能对此广播包进行回答。DHCP服务器先在其数据库中查找该计算机的配置信息。若找到,则返回找到的信息。若找不到,则从服务器的IP地址池中取一个地址分配给该计算机。DHCP服务器的回答报文叫做提供报文(DHCPOFFER),表示“提供”了IP地址等配置信息。
需要说明几点:
1、我们没必要在每个网段上都设置一个DHCP服务器,只需要在每一个网络中设置一个DHCP中继代理(通常是一台路由器),就可以实现跨网段获取IP地址。DHCP中继代理配置了DHCP服务器的IP地址信息。当DHCP中继代理收到主机A以广播形式发送的发现报文后,就以单播方式向DHCP服务器转发此报文,并等待其回答。收到DHCP服务器回答的提供报文后,DHCP中继代理再把此提供报文发回给主机A。
2、DHCP服务器分配给DHCP客户的IP地址是临时的,,因此DHCP客户只能在一段有限的时间内使用这个分配到的IP地址。DHCP协议称这段时间为租用期,这个数值由DHCP服务器自己决定。当租用期过半,DHCP客户还要发送请求更新租用期。
7、P2P 应用
话题
P2P内容分发
不须要中心server,是一种去中心化的协议
起源:
因为CDN须要中心server,所以诞生了P2P去中心化的内容分发网络
P2P
P2P的目标就是去中心化实现内容分发
主要想法就是让參与P2P的用户互相帮助
P2P的挑战
没有server支持,全部的连接须要用户主机自己组织。这就导致了一些问题。
每一个节点的能力有限
參与者可能是自私的,为什么节点之间会相互帮助呢?
去中心化,节点之间怎样找到对方呢?
克服能力的限制每一个节点都是client,同一时候也扮演着server的角色
參与者可能是自私的
每一个节点都扮演着两种角色,下载或者上传
防止自私的方法就是:假设你给我数据,我也给你数据
实现去中心化
节点必需要知道对方的地址是什么
能够通过DHT分布式哈希表来实现
DHT是全然去中心化、高效的分布式索引
BitTorrent
现在使用的基本的P2P系统
使用torrents来分发数据。每一个节点将文件分割成非常多片段,然后将这些片段进行传输
BitTorrent协议
从torrent种子开始
联系tracker,将自己增加到列表中,而且获取其它的用户列表
使用DHT网络来更新节点列表
将自己的数据片段和别人的数据片段进行交易,对自己贡献多的节点优先考虑
全部的节点都是同一时候下载/上传数据
将文件切割成非常小的片段来提高传输速度
孤立贡献小的节点,鼓舞他作出很多其它贡献
DHT是全然去中心化的
P2P前景
是CDN的替代品
P2P和DHT技术有了很多其它的应用,比方SKYPE AMAZON
还有比特币
作者:赫凯
本文内容由互联网用户自发贡献,该文观点仅代表作者本人。如发现本站有涉嫌抄袭侵权/违法违规的内容,请发送邮件至 203304862@qq.com
本文链接:https://jinnalai.com/n/118999.html