应用层
Web:遵循HTTP协议
多个网页互连链接
每个网页包含多个对象
对象类型:HTML文件,图片,视频等
基本的HTML文件包含对其他对象的引用
HTTP:(无状态的)
HTTP协议:超文本传输协议,采用C/S结构(也可以说B/S)
客户-Browser-请求,接受,展示Web对象
服务器-Web Server:响应客户请求,发送对象。
HTTP的版本有1.0 1.1
HTTP/1.0是非持久连接,在HTTP服务器发出响应报文后,会关闭TCP连接。每个对象都需要建立TCP连接,都要2个RTT
HTTP/1.1是持久连接,不会关闭TCP连接。
非流水方式的持久连接和流方式的持久连接。
HTTP传输过程: 客户端在80号端口发起一个到服务器的连接,请求建立TCP连接
服务器在80号端口等待连接,同意建立TCP连接,并通知客户端
客户端通过TCP连接的套接字发送HTTP请求报文,报文表示客户端需要的对象。
服务端接受请求报文,并检索出所需对象,将其封装在一个响应报文中,通过套接字发给客户端。
(HTTP关闭TCP连接)
客户端接受包含HTML文件的响应报文,进行查找。
cookies
:
web缓存
FTP:(有状态的)
FTP数据连接为带内20号端口 控制连接为带外21号端口。
Email:
SMTP协议是发送协议。pop3和IMAP 和HTTP是读取协议。
SMTP主要在邮件服务器之间,采用TCP连接。SMTP中多个的对象包含在一个报文中。
DNS:
主机向本地域名服务器的查询一般采用递归查询
本地域名服务器向根域名服务查询通常采用迭代查询。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理