万维网1 【应用层】【计算机网络】

本文为我看计算机网络整理的笔记,只为万维网的第一篇,之后将会完成后面的,尽情期待!!!

一.web简介

web :万维网的俗称。它是一个体系结构框架,该框架把分布在整个Internet树百万台机器上的内容链接起来供人们访问。
最初用途:刚出现是在瑞士被科研人员用来相互之间协同设计高能物理实验。

第一台图形浏览器

由伊利诺伊大学的 Marc Andreessen领导的研究小组,在1993年2月开发出了第一个图形浏览器。

二.体系结构概述

在用户的角度,Web由大量分布在全球范围的内容组成,这些内容以 Web页面 (Web page) 的形式表示。每个页面可以通过链接跳转到其它页面。

浏览器:

常见的浏览器有 : Firefox,Inrernet Explorer, Chrome.
作用:取回所请求的页面,对页面内容进行解释,并在屏幕上以恰当的格式显示出来。

web的体系结构

在这里插入图片描述
每一页的抓取都是通过发送一个请求到一个或多个服务器,服务器以页面给的内容作为响应 ,所用的“请求 -响应” 是一个简单的基于文本的协议(超文本传输协议 HTTP)
显示的内容可以是一个磁盘读取的文档,或者是数据库查询和程序执行的结构。

静态页面

每次显示的是相同的一个文档

动态页面

每次显示的是程序按需产生的内容,或者是页面本身包含了一个程序

客户端

在显示一个被选中的页面之前,首先想这个三个问题?
1.这个页面叫什么?
2.这个页面在哪里?
3.如果访问这个页面?

解决方案是用一个统一资源定位符(URL)来标识页面,充当该页面在全球范围内的名字,
URL包括三个部分
1.协议
2.页面所在机器的DNS名字
3.唯一指向页面的路径(一般情况下,路径是一个模仿文件目录结构的层次名字)

让我们举个栗子

http://www.cs.washington.edu/index.html
这个URL由三部分组成:
协议(http),
主机的DNS域名(www.cs.washington.edu)
路径名(index.html)

当一个用户点击这个链接时,让我们看看都发生了什么?

(1) 浏览器确定URL(观察选中的是什么)
(2) 浏览器请求DNS查询服务器www.cs.washington.edu的IP地址
(3) DNS返回128.208.3.88(该域名所对应的IP地址)
(4)浏览器与128.208.3.88机器的80端口建立一个TCP连接,(80端口,HTTP协议的知名端口)
(5)浏览器发送HTTP报文,请求返回/index.html页面
(6) www.cs.washington.edu 服务器发回页面作为HTTP响应,
(7)如果页面包括需要显示的URL,那么浏览器经过
(8)浏览器显示页面/index.html
(9)如果短期内没有向同一个服务器发送其它请求,那么释放TCP连接

名字用途实例
http超文本http://www.ee.uwa.edu/~rob/
https安全的超文本https://www.bank.com/accounts
ftpFTPftp://ftp.cs.vu.nl/pub/minix/README
file本地文件file:///usr/suzanne/prog.c
mailto发送邮件mailto:JohnUser@acm.org
rtsp流式媒体rtsp://youtube.com/montypython.mpg
sip多媒体呼叫sip:eve@adversary.com
about浏览器信息about:plugins

一些公共的URL方案

ftp协议 :用于FTP访问文件,这个Internet的文件传输协议

file协议 :只要给出一个文件名就可能通过Web页面来访问本地文件,这种方法并不需要一个服务器,而它只适用于本地文件,而不能用于远程文件

mailto协议:并没有真正抓取网页,它允许用户从Web浏览器发送电子邮件,大多数浏览器针对一个mailto链接会以启动用户的邮件代理作为回应,返回一个已填好地址字段的邮件。

rtsp sip协议 : 用于创建流式媒体会话和音视频的呼叫

about协议:用来提供有关浏览器的信息。例如 about:plugsins,它会导致大部分浏览器显示一个网页,该网页列出它们利用浏览器扩展(插件)可以处理的MIME类型

URL不仅允许用户浏览网页,而且允许用户运行一些旧的协议,比如FTP和电子邮件,以及涉及音频和视频的新协议,除此之外,还提供了访问本地文件和浏览器信息的便利方法(把所有的Internet访问集成到单一的程序)

URL ----> 被推广到统一资源标识符(URI)
对于大量引用的页面,创造出多个相距甚远的副本,以减少网络流量。

MIME类型

为了能显示页面,浏览器必须了解其格式,为了让浏览器都能了解所有网页,网页必须以一种标准化的语言(HTML)编写

但是,由于标准HTML页面可以链接到任何一种格式的内容,所以当浏览器命中一个它不知道如何解释的页面时,问题就产生了。

解决方案:当一台浏览器返回一个页面时,它同时也返回一些关于此页面的其它信息,这些信息包括页面的MIME类型。 具有text/html类型的页面可被直接显示,就像其它一些内置类型的网页一样,如果MIME类型不是一个内置类型,那么浏览器可查阅其MIME类型表,以确定如何显示该页面。

有两种辅助显示页面的方式: 插件和辅助应用程序

插件

插件:一个第三方代码模块,作扩展被安装到浏览器中 ---->>可以访问当前的页面,也可以修改页面的外观。
常见的插件:PDF,Flash,Quicktime 用来呈现文档和播放音视频。

在一个插件被适用前,首先要安装该插件
(1)用户到插件的Web站点下载一个安装文件
(2) 执行安装文件将插件解压缩
(3)执行适当的调用以便注册插件的MIME类型。
(4)将浏览器与该插件关联起来

辅助应用程序

辅助应用程序: 一个作为独立进程运行的完整程序。 如PowerPoint, Adobe Photoshop
它通常只是接受了一个存储了待显示内容的临时文件名字,然后打开该文件并显示其内容。

浏览器也能打开本地文件,而不一定非得从远程的Web服务器上取回文件,通常是操作系统将文件的扩展名与MIME类型关联起来,用以确定文件的MIME类型,比如当浏览器打开foo.pdf时,它就会用application/pdf插件,而当打开bar.doc文件时则通过application/msword辅助应用程序调用Word

服务器端

当用户键入一个URL或者点击一行超文本时
服务器的处理如下
(1)接受来自客户端的TCP连接
(2)获取页面的路径,即被请求文件的名字
(3) 获取文件(从磁盘上面) 对于动态内容(此时为运行一个程序,该程序返回页面的内容)
(4) 将文件内容发送给客户
(5) 释放该TCP连接

多线程默认
在一种设计方案,服务器由一个前端模块和k个处理模块组成
在这里插入图片描述
前端模块接受所有入境请求,k+1个线程全部属于同一个进程,

当一个请求到达时

  1. 前端模块接受它,并为其创建一条描述该请求的简短记录,然后将该记录交给其中一个处理模块。
  2. 处理模块
    (1)解析被请求的Web页面的名字
    (2) 执行对该页面的访问控制
    (3) 检查缓存
    如果有,则处理模块修改记录,在记录中增加一个指向该文件的指针,
    如果没有,从磁盘上获取请求的页面或者运行一个创建页面的程序
    (4)确定响应中的其余部分(比如要发送的MIME类型)
    (5)把响应返回给客户
    (6)在服务器的日志中添加一个表项
    优点:当一个或多个处理模块因为等待磁盘操作或者网络操作的完成被阻塞时,其它模块可以继续处理其他的请求,有了k个处理模块,吞吐量可以达到单线程服务器下的k倍。

(1): 在入境请求中可以并没有包含文件或者程序的字面上的实际名字,它或者包含的是需要转化的内置缩写。
举个例子 : 在URL http://www.cs.vu.nl中的文件名是空的,在这种情况下,就会把它扩展到默认文件名,通常为 index.html
而还可以根据浏览器软件和用户的默认语言,为它们选择恰当语言的Web页面

(2):确定该用户是否有权限获取一个页面
(7):为了行政管理的需要而需要此次操作,这种日志可以在日后被用来挖掘出有关用户行为的有价值的信息。 例如:人们访问网页的次序

Cookie

让我们向一个问题,每个用户向一个页面发送请求时,应该获得的页面相同吗?
实际是,给用户返回什么页面,应该取决于他们之前在服务器上做了什么。
那为什么不用观察用户的ip地址来跟踪他们呐?
首先,许多用户使用共享的计算机工作,实际用户不同,但这样的话他们的ip地址就相同了,其次许多公司使用NAT,因而用一个公司所有的勇敢发出的出境数据包的ip地址都一样。

因此使用Cookie来解决这个问题

Cookie:一小段文本信息,伴随着用户请求的页面在Web服务器和浏览器之间传递。

当客户请求一个Web页面时,服务器把请求的页面,还有一些附加的信息以Cookie方式提供过去。

Cookie 是一个相当小的命名的串(最多4KB),服务器将它于浏览器关联,浏览器把服务器存储的Cookie通常存储在客户机的磁盘的Cookie目录下,这样浏览器在调用期间一次坚持Cookie,(除非用户禁用Cookie)
一个Cookie可能包含病毒,但由于Cookie只被当作数据处理,因此不存在病毒得以实际运行从而造成损害途径,然而,始终有可能存在一些黑客利用一个浏览器的漏洞,来激活病毒。

一个Cookie包含至多5个字段,域通常指出Cookie来自何方,每个域为客户端应该存储不超过20个Cookie,路径是服务器目录结构中的一个路径,它标识了服务器文件数的那些部分可能使用该Cookie,路径通常是"/",这意味着整棵树。

Cookie的某些例子

路径内容过期安全
toms-casino.com/CustomerID=29779352115-10-1017-00
jills-store.com/Cart=1-00501;1-07031;2-1372111-1-1114:22
aportal.com/Prefs=Stk:CSCO+ORCL;Spt:jets31-12-2023:59
sneaky.com/UserID=462723910131-12-19 23:59

内容:采用“名字=值”的形式,这个此段正是存放Cookie内容的地方。
过期时间:指明该Cookie何时过期
如果这个字段不存在,则浏览器在退出时将丢弃Cookie(非持续Cookie)
如果这个字段存在,则它将一直被保存到过期。(持续性Cookie)
如果服务器想在客户端的硬盘上删除一个Cookie,则只需要将它再发送一次,但是将该Cookie的过期时间指定为一个已经过去的时间就可以了。

Cookie会被有些人用来窃取信息,为了维护隐私,有些用户会将他们的浏览器配置成拒绝所有的Cookie,然后这会带来一些问题,有些Web站点没有Cookie就无法正常工作,所以大多少浏览器会阻止第三方Cookie(不同于主页网站获得的Cookie)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值