网络应用
网络应用意味着需要有网络环境,一部分应用在本地运行(app/浏览器),数据跑在服务器上,两部分需要不断交互。
应用层体系结构
客户机/服务器结构 (Client-Server, C/S)
适合文件搜索
点对点结构(peer-to-peer,P2P)
适合文件传输
混合结构
网络应用基础
进程通信
同一主机上进程通信
- 操作系统提供
不同主机进程通信
- 报文交换
服务器进程:等待请求的进程
客户机进程:发送请求的进程
进程通过套接字(socket),抽象的使用TCP等服务
进程标识符:IP地址+端口号
通常可以表示为4元组:(客户端IP地址+客户端端口号)+(服务端IP地址+服务端端口号)
服务端如果开放一个80端口,本地有多少个端口就可以建立多少个连接。
三次握手
确保双方都能让对方知道自己能获取对方通信需要的最少通信次数。
1.client -- SYN --> server
2.client <-- SYN/ACK -- server
3.client -- ACK --> server
四次分手
先发完包的一方,发送主动断开连接请求 FIN,收到的一方回复ACK代表收到,
另一方如果也发完了包,也需要发送FIN请求,收到的一方回复ACK代表收到。
之所以不能把ACK和FIN合并成一个包,就是因为可能收到ACK的时候包还没发完,所以只能中止单向连接。
相比三次握手最大的取别就是因为有数据发送的过程。
web应用
World Wide Web
网页包含多个对象
HTML文件(包含其他对象引用的链接)、图片、视频、动态脚本
对象寻址
URL:同一资源定位器,包含host name 和 path name
HTTP概况
Web的应用层协议
CS模式
HTTP 1.0: RFC 1945
HTTP 1.1: RFC 206
TCP传输服务
- 使用服务器在80端口等待客户请求
- 浏览器发起到服务器的TCP连接,创建套接字Socket
- 服务器接收来自浏览器的TCP连接
- 浏览器和服务器交换http消息
- 关闭tcp连接
非持久性连接
(图)
持久性连接
(图)
无状态特点
不会维护任何有关客户端过去发送请求的信息,维护协议复杂,只要有一端死机,他们的状态就会不一致。
HTTP请求信息
(图)
HTTP响应状态码
- 200 OK 请求成功
- 301 Moved Rermanently 请求对象已被永久转移
- 400 Bad Request 请求不能被服务器解读
- 404 Not Found 请求的文档在该服务器上没有找到
- 505 HTTP version Not supported
Cookie技术
使服务器掌握客户端状态
- http的响应报文和请求报文都要增加cookie头部行
- 保存在客户端主机上的cookie文件,由浏览器管理
- web服务端的后台数据库
可以实现的功能:购物车、推荐、用户验证、用户状态
隐私:
- Cookies 允许站点知道许多关于用户的信息
- 可能把它知道的东西卖给第三方
- 使用重新定向和cookie的搜索引擎还能知道用户更多信息
- 通过某个用户在大量站点上的行为,了解其个人浏览方式的大致模式
- 广告公司从站点获取信息
WEB缓存/代理服务器
在不访问服务器的前提下满足客户端的HTTP请求
- 缩短响应时间
- 减少机构、组织流量
- 在大范围内实现有效的分发
DNS 域名解析系统
将域名解析为ip地址
分布式层级式数据库
(图)
(图)
FTP
文件传输协议
FTP概况
- 向远程主机上传输文件或从远程主机接收文件
- CS模式
- ftp: RFC 959
- ftp 端口号 21
FTP传输服务
- 通过TCP传输协议
- 客户端通过控制连接获得身份确认
- 客户端通过控制连接发送命令浏览远程目录
FTP的协议是有状态的,FTP协议的控制命令和数据传输分别在两个TCP上进行
P2P
posted on 2022-04-04 14:24 MIXTAPE_208 阅读(159) 评论(0) 编辑 收藏 举报