计算机网络(4)—— Web应用

一、万维网(World Wide WEb,www)

  • 网页(Web Page):包含多个对象(objects)。

    • 对象:HTML文件、JPEG图片、视频文件、动态脚本等

    • 基本HTML文件:包含对其他对象引用的链接

    • 对象的寻址:URL(Uniform Resource Locator,统一资源定位器) RFC

      Scheme://host:port/path

  • 网页之间互相链接

二、HTTP协议(HyperText Transfer Protocol,超文本传输协议)

  • 客户-Browser:轻轻、接收、展示Web对象

    服务器-Web Server:响应客户的请求,发送对象

  • 使用TCP传输服务

  • 无状态:服务器不维护任何有关客户端过去所发请求的信息。

三、HTTP连接

1. 非持久性连接(Nonpersistent HTTP)
  • 每个TCP连接最多允许传输一个对象
  • HTTP 1.0版本使用非持久性连接
响应时间分析与建模
  • RTT(Round Trip Time):从客户端发送一个很小的数据包到服务器并返回所经历的时间
  • 响应时间(Response time)
    • 发起、建立TCP连接:1个RRT
    • 发送HTTP请求消息到HTTP响应消息的前几个字节到达:1个RRT
    • 响应消息中所含的文件/对象传输时间
  • TOTAL = 2RRT + 文件发送时间
非持久性连接的问题
  • 每个对象需要2个RRT
  • 操作系统需要为每个TCP连接开销资源
  • 浏览器:打开多个并行的TCP连接以获取网页所需对象,给服务器带来巨大开销
2. 持久性连接(Persistent HTTP)
  • 每个TCP连接允许传输多个对象
  • HTTP1.1版本默认使用持久性连接
过程:
  • 发送响应后,服务器保持TCP连接的打开
  • 后续的HTTP消息可以通过这个连接发送
无流水(pipelining)的持久性连接
  • 客户端只有收到前一个响应后才发送新的请求
  • 每个被引用的对象耗时1个RTT
带有流水机制的持久性连接
  • HTTP1.1的默认选项
  • 客户端只要遇到一个引用对象就尽快发出请求
  • 理想情况下,收到所有的引用对象只需耗时1个RTT

四、HTTP消息格式

1. 请求消息(request)
  • ASCII:人直接可读

  • 格式:

    request line(GET,POST,HEAD,commands)

    header lines

上传输入的方法
1. POST方法
  • 网页经常需要填写表格(form)
  • 在请求消息的消息体(entity body)中上传客户端的输入
2. URL方法
  • 使用GET方法
  • 输入信息通过request行的URL字段上传
方法的类型
HTTP/1.0
  • GET
  • POST
  • HEAD:请Server不要所请求的对象放入响应消息中
HTTP/1.1
  • GET, POST, HEAD
  • PUT:将消息体中的文件上传到URL所指定的路径
  • DELETE:删除URL字段所指定的文件
2. 响应消息
  • status lines (protocol. status code, status phrase)

    header lines

  • HTTP响应状态代码:响应消息的第一行

    如404 Not Found,200 OK,505 HTTP Not Supported。

五、Cookie技术

1. 为什么需要Cookie?
  • HTTP协议无状态
  • 很多应用需要服务器掌握客户端的状态,如网上购物
2. Cookie技术:
  • 某些网站为了辨别用户身份、进行session跟踪而储存在用户本地终端上的数据(通常通过加密)

  • RFC6265

3. Cookie的组件
  • HTTP响应消息的cookie头部行
  • HTTP请求消息的cookie头部行
  • 保存在客户端主机上的cookie文件,由浏览器管理
  • Web服务器端的后台数据库
4. cookie的作用
  • 身份认证、购物车、推荐、WebEmail …
  • 问题:隐私问题

六、Web缓存/代理服务器技术

功能:在不访问服务器的前提下满足客户端的HTTP请求

为什么要发明这种技术?

  • 缩短客户请求的响应时间
  • 减少机构/组织的流量
  • 在大范围内(Internet)实现有效的内容分发
Web缓存/代理服务器
  • 用户设定浏览器通过缓存进行Web访问
  • 浏览器向缓存/代理服务器发送所有的HTTP请求
    • 如果所请求对象在缓存中,缓存返回对象
    • 否则,缓存服务器向原始服务器发送HTTP请求,获取对象,然后返回给客户端并保存该对象
  • 缓存既充当客户端,又充当服务器
  • 一般由**ISP(Internet服务提供商)**架设
条件性GET方法

目标:如果缓存由最新的版本,则不需要发送请求对象

缓存:在HTTP请求消息中声明所持有版本的日期

服务器:如果缓存的版本是最新的,则响应消息中不包含对象

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值