计算机网络学习20250525
应用层协议原理
创建一个网络应用,编写应用程序,这些应用程序运行在不同的端系统上,通过网络彼此通信
- 不需要在网络核心设备(路由器,交换机)上写应用程序
- 网络应用程序工作在网络层以下
- 将应用程序限制在端系统上促进应用程序迅速研发和部署,将复杂问题放到网络边缘
网络应用程序体系架构
- C-S:web FTP telnet e-mail
server特点:
- 总是打开的主机
- 固定周知的IP地址
- 数据中心用于创建强大的虚拟服务器
client特点:
- 与server之间通信
- 与server可以是间歇的连接
- 可以使用动态的IP地址
- client之间彼此不通信
- P2P:迅雷
- 没有永远在线的server
- 端系统之间直接通信
- 对等方需要对方提供服务,也向其它对等方提供服务
- 对等方通信是间隙性的,可以改变IP,管理复杂
进程通信
- 进程:运行在端系统上的一个程序
- 进程通信:
同一端系统内两个进程通信使用进程间通信机制——由操作系统确定,由端口号区分
不同端系统间通信——由端口号和IP地址区分
- 客户和服务器进程:客户发起通信,服务器等待联系
- 进程和计算机网络之间的接口:套接字(软件接口,应用程序编程接口API)
socket是一台主机上应用层与传输层之间的接口
- 进程通过套接字发送和接收报文过程:
发送端进程通过socket将报文推出
通过运输的基础设施将报文送到对方
接收端通过socket将报文送给接收端进程 - 进程寻址
标识接收进程:主机IP地址和目的端口号
http
web页面:按照html格式形成超文本文档,包含一个html基本文件和其它对象
超文本:用超链接(URL指针)方式,将各种对象文件(URL寻址)组织在一起
URL:统一资源定位符,包括服务器主机名和对象的路径名
http:超文本传输协议,无状态协议,服务器不保存与过去访问有关的信息
http报文格式
- http请求报文
请求行
首部行
空行
实体主体(可选)
- 请求行:方法字段/URL字段/HTTP版本字段
- 方法字段:
GET:浏览器C向S请求对象,请求对象的URL放在URL字段
POST:浏览器向S提交表单,加密后放入实体主体中
HEAD:只请求头部,调试时使用
PUT:浏览器上传对象到S
DELETE:浏览器删除S上的对象 - 首部行:
host:指明对象所在主机
connection:close 浏览器高速服务器关闭TCP连接,不使用持续连接
user-agent:用户代理,浏览器版本
keep-alive:115,使用持续连接方式,服务器在传完最后一个对象后保持连接115s
- http响应报文
状态行
首部行
空行
实体主体
- 状态行:http版本字段/状态码/状态信息
状态码 状态信息:
200 ok:请求成功
301 moved permanently:请求对象被永久的转移了,新URL在响应报文的location首部行
400 bad request
404 not found
505 http vision not support
304 not modified:原缓存文档还可以继续使用
首部行
DATE:产生响应报文的时间
last-modified:对象创建或者最后修改的日期和时间
content-length:被发送对象的字节数
时间为GMT时间(比北京时间慢八小时)
http cookie:
是发送到用户浏览器并保存在浏览器上的数据,它会在浏览器之后向同一服务器再次发起请求时被携带并发送到服务器上。它用于告知服务端两个请求是否来自同一浏览器,如保持用户的登录状态、记录用户偏好等
FTP协议:
文件传输协议是TCP/IP协议组中协议之一
包含两个部分FTP服务器和FTP客户端
TCP 端口21:控制连接,传输控制信息,会话断开前一直保持
TCP 端口20:数据连接,每传一个文件,建立一次,之后关闭
HTTPS协议:
安全超文本传输协议,是相当于HTTP+SSL(安全套接层)/TLS(安全传输层协议)协议加密