应用层
- 多端系统通信实际上是进程通信,通过网络交换报文(应用层协议生成)
- 进程通过套接字向网络收发报文(对应一个或多个)
- 套接字是应用层与传输层之间的一个接口,为了建立网络程序的可编程接口
- 应用开发者可以掌控套接字在应用层的一切,对传输层基本没有控制(可以设置协议,最大长度)
- 进程之间进行通信需要知道母的主机地址(IP网络层)和目的主机接受进程的标识符(端口传输层)
- 运输层应该向应用程序提供的服务:可靠数据传输、安全、吞吐量、定时(后两个tu都不提供)
- 可靠数据传输:发送进程把数据传输到套接字就认为已满足。
- 吞吐量:保证向接受端交付的比特速率。
- 安全:加密
- TCP:拥塞控制(抑制发送方进程)
- UDP:无拥塞控制。发送端可以任何速率向下层注入数据。但接受方的吞吐量一般达不到
- 吞吐量或定时运输层协议并没有提供
- 应用层协议定义了运行在不同端程序如何传递报文
- 如何传递:报文类型、语法、语义,何时如何发送报文,如何响应
- HTTP使用TCP,不担心数据丢失。不存储任何关于用户的状态(无状态协议)
- HTTP提供持续链接(默认)和非持续连接
- HTML基本文件.html中包含了对其他对象的引用(如图像)需要利用给的引用继续要数据
- HTTP是无状态的,但web站点通常希望把内容与用户身份联系起来,cookie
- cookie允许站点对用户进行跟踪
- cookie:发送请求->web产生一个唯一识别码并以此为索引在后端建立一个表项
- web对请求进行回应并带有一个setCookie首部含有识别码
- 再次访问这个网站就会再请求报文首部加上Cookie
- web缓存器也叫代理服务器,存储最近请求过的对象副本
- 用户先请求缓存器,缓存有就返回信息。没有就自己发送请求要回来备份并回应
- web缓存器通常有ISP购买,如学校让学生都指向它。
- web缓存可以通过带if-modified-since的首部证明自己的对象是最新的(什么时候调用呢?)
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。