00 07计算机网络之Web应用

1 Web应用概述

1、Web
(1)World Wide Web:Tim Berners-Lee
(2)Web构成
|——网页
|——网页互相链接:形成极其庞大的信息网络和服务网络
(2)网页(Web Page)包含多个对象(objects)
|——对象:HTML文件、JPEG图片、视频文件、动态脚本等
|——基本HTML文件:包含对于其他对象引用的链接
(3)对象的寻址(addressing)
|——URL(Uniform Resource Locator):统一资源定位器 RFC1738有介绍
|——Schema://host:port/path
例如:www.lkslovehhy.org/happy/pic.jpg中www.lkslovehhy.org为主机名(host name),/happy/pic.jpg为资源路径名(path name),协议名通常可以省略。
2、HTTP协议概述

(1)万维网应用遵循什么协议?
(2)超文本传输协议
|——HyperText Transfer Protocol
(3)C/S架构
|——客户:Browser:请求、接收、展示Web对象
|——服务器:Web Server:响应客户的请求,发送对象
(4)HTTP版本
|——1.0: RFC 1945
|——1.1:RFC 2068
(5)使用TCP传输服务
|——服务器在80端口等待客户的请求
|——浏览器发起到服务器的TCP连接(创建套接字Socket)
|——服务器接受来自浏览器的TCP连接
|——浏览器(HTTP客户端)与Web服务器(HTTP服务器)交换HTTP消息
|——关闭TCP连接
(6)HTTP应用协议是无状态(stateless)协议
|——服务器不维护任何有关客户端过去所发请求的信息
(7)有状态的协议
|——更复杂
|——需维护状态(历史信息)
|——如果客户或服务器失效,会产生状态不一致,解决这种不一致性代价高

2 HTTP连接类型

1、HTTP连接的两种类型
(1)非持久性连接(Nonpersistent HTTP)
每次建立连接后就只会发送一次对象,然后关闭连接。
|——每个TCP连接最多允许传输一个对象
|——HTTP 1.0版本使用非持久性连接
(2)持久性连接(Persistent HTTP)
|——每个TCP连接允许传输多个对象
|——HTTP1.1版本默认使用持久性连接
2、非持久性连接
假定用户在浏览器中输入URL

3、响应时间的分析与建模

(1)RTT(Round Trip Time)
|——从客户端发送一个很小的数据包到服务器并返回所经历的时间。
(2)响应时间(Response time)
|——发起、建立TCP连接:1个RTT
|——发送HTTP请求消息到HTTP响应消息的前几个字节到达:1个RTT
|——响应消息中所包含的文件/对象传输时间
|——Total = 2RTT + 文件发送时间
4、持久性HTTP
(1)非持久性连接的问题
|——每个对象需要2个RTT
|——操作系统需要为每个TCP连接开销资源(overhead)
|——浏览器会怎么做?
|————打开多个并行的TCP连接以获取网页所需对象
|————给服务器响应造成压力,需要同时打开多个TCP连接响应网页所需对象。
(2)持久性连接
|——发送响应后,服务器保持TCP连接的打开
|——后续的HTTP消息可以通过这个连接发送
(3)无流水(pipelining)的持久性连接
|——客户端只有收到前一个响应后才发送新的请求
|——每个被引用的对象耗时1个RTT
(4)带有流水机制的持久性连接
|——HTTP 1.1的默认选项
|——客户端只要遇到一个引用对象就尽快发出请求
|——理想情况下,收到所有的引用对象只需耗时约1个RTT

3 HTTP消息格式

1、HTTP请求消息

(1)HTTP协议有两类消息
|——请求消息(request)
|——响应消息(response)
(2)请求消息
|——ASCII:人可直接读
2、HTTP请求消息的通用格式

3、上传输入的方法
(1)POST方法
|——网页经常需要填写表格(form)
|——在请求消息的消息体(entity body)中上传客户端输入
(2)URL方法
|——使用GET方法
|——输入信息通过request行的URL字段上传
例如:www.someschool.edu/animalsearch?monkeys&banana
4、方法的类型
(1)HTTP/1.0
|——GET
|——POST
|——HEAD:请Server不要将所请求得对象放入响应消息中
(2)HTTP/1.1
|——GET,POST,HEAD
|——PUT:将消息体中的文件上传到URL字段所指定的路径
|——DELETE:删除URL字段所指定的文件
5、HTTP响应消息

6、HTTP响应状态码
(1)响应消息的第一行
(2)示例
|——200 OK
|——301 Moved Permanedtly
|——400 Bad Request
|——404 Not Found
|——505 HTTP Version Not Supported
7、体验一下HTTP
(1)利用telent登录到某个Web服务器
|——telnet website [port]
(2)输入一个HTTP请求
|——GET pathname HTTP/1.1
|——Host: hostname
(3)查看HTTP服务器所返回的响应消息

4 Cookie技术

1、为什么需要Cookie?
HTTP协议无状态,但是很多应用需要服务器掌握客户端的状态,如网上购物,如何实现?
2、Cookie技术
(1)Cookie技术
|——某些网站为了辨别用户身份、进行session跟踪而储存在用户本地终端上的数据(通常经过加密)。
|——RFC6265
(2)Cookie的组件
|——HTTP响应消息的cookie头部行
|——HTTP请求消息的cookie头部行
|——保存在客户端主机上的cookie文件,由浏览器管理
|——Web服务器端的后台数据库
3、Cookie的原理

4、Cookie的作用
(1)Cookie能够用于
|——身份认证
|——购物车
|——推荐
|——Web e-mail
|——…
(2)隐私问题
5、思考题
(1)Cookie能够怎样被用于收集隐私?
(2)能够收集哪些隐私?
(3)你在上网时感觉到了自己的隐私被严重侵犯了吗?

5 Web缓存技术

1、Web缓存/代理服务器技术
(1)功能
|——在不访问服务器的前提下满足客户端的HTTP请求。
(2)为什么要发明这种技术?
|——缩短客户请求的响应时间
|——减少机构/组织的流量
|——在大范围内(Internet)实现有效的内容分发
(3)Web缓存/代理服务器
|——用户设定浏览器通过缓存进行Web访问
|——浏览器向缓存/代理服务器发送所有的HTTP请求
|————如果所请求对象在缓存中,缓存返回对象
|————否则,缓存服务器向原始服务器发送HTTP请求,获取对象,然后返回给客户端并保存该对象
(4)缓存既充当客户端,也充当服务器
(5)一般由ISP(Internet服务提供商)架设
2、Web缓存示例1

(1)假定:
|——对象的平均大小=100,000比特
|——机构网络中的浏览器平均每秒有15个到原始服务器的请求
|——从机构路由器到原始服务器的往返延迟=2秒
(2)网络性能分析:
|——局域网(LAN)的利用率=15%
|——接入互联网的链路的利用率=100%
|——总的延迟=互联网上的延迟+访问延迟+局域网延迟=2秒+几分钟+几微秒
3、Web缓存示例2

(1)解决方案1:
|——提升互联网接入宽带=10Mbps
(2)网络性能分析:
|——局域网(LAN)的利用率=15%
|——接入互联网的链路利用率=15%
|——总的延迟=互联网上的延迟+访问延迟+局域网延迟=2秒+几微秒+几微秒
(3)问题:
|——成本太高
4、Web缓存示例3

(1)解决方案2:
|——安装Web缓存
|——假定缓存命中率是0.4
(2)网络性能分析:
|——40%的请求立刻得到满足
|——60%的请求通过原始服务器满足
|——接入互联网的链路的利用率下降到60%,从而其延迟可以忽略不计,例如10微秒
|——总的平均延迟=互联网上的延迟+访问延迟+局域网延迟=0.6×2.01秒+0.4×n微秒<1.4秒
5、条件性GET方法

(1)目标:
|——如果缓存有最新的版本,则不需要发送请求对象
(2)缓存:
|——在HTTP请求消息中声明所持有版本的日期
|——If-modified-since: <date>
(3)服务器:
|——如果缓存的版本是最新的,则响应消息中不包含对象
|——HTTP/1.0 304 Not Modified
6、思考
(1)检索文献,分析、总结Web技术近年来有哪些新进展?其关键思想和技术是什么?
参考于:系统极客
Web技术近年来的目标是希望Web应用更像原生应用程序。渐进式Web应用程(PWA,Progressive Web Apps)就是让 Web 应用程序更像本机应用的技术,PWA 与现有的 Web 程序一样,将直接托管在其关联的网站上。开发人员可以直接在自己的 Web 服务器上对「渐进式 Web 应用」进行更新,而不必重复将更新提交给不同的应用商店,同一个应用就可以在所有浏览器和平台上运行。

Web客户端的主要任务是展现信息内容。Web客户端设计技术主要包括:HTML语言、Java Applets、脚本程序、CSS、DHTML、插件技术以及VRML技术。与Web客户端技术从静态向动态的演进过程类似,Web服务端的开发技术也是由静态向动态逐渐发展、完善起来的。Web服务器技术主要包括服务器、CGI、PHP、ASP、ASP.NET、Servlet和JSP技术。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值