应用层(下)

简介: 应用层(下)

HTTP请求报文


两种类型的HTTP报文:请求、响应


HTTP请求报文:


ASCII (人能阅读)

1689680176256-bb40d49c-6e2f-4803-9f3b-4a63a18a99c8.png


通用的请求报文格式


1689680213969-ea7dd295-bc0e-43bf-8bae-04167c6d44d5.png

(一) Post方式 :

  • 网页通常包括表单输 入
  • 包含在实体主体 (entity body )中的 输入被提交到服务器


(二) URL方式:

  • 方法:GET
  • 输入通过请求行的 URL字段上载


1689680292541-cb66f607-f642-4846-a83e-542482de0f43.png


方法类型:


(一) HTTP/1.0

GET 、 POST、HEAD


要求服务器在响应报文中 不包含请求对象 –> 故障 跟踪


(二) HTTP/1.1

除了 GET、 POST、HEAD之外还有


PUT :将实体主体中的文件上载 到URL字段规定的路径


DELETE : 删除URL字段规定的文件


HTTP响应报文


1689680822355-f0a9cff7-b827-4699-b57b-4018bf061e70.png

响应状态码:


位于服务器客户端的响应报文中的首行


常见的几种状态码


200 OK


请求成功,请求对象包含在响应报文的后续部分


301 Moved Permanently

请求的对象已经被永久转移了;新的URL在响应报文的Location: 首部行中指定


客户端软件自动用新的URL去获取对象


400 Bad Request

一个通用的差错代码,表示该请求不能被服务器解读


404 Not Found


请求的文档在该服务上没有找到 505 HTTP Version Not Supported


Trying out HTTP (client side) for yourself


在自己的linux操作系统上发送连接

1689680948635-2eef487a-b6e2-4c41-acd6-78f63c039363.png


用户-服务器状态:cookies


Http协议实际上是一个无状态的协议。 服务器不会维护客户端的状态, 请求只会解析封装响应给你, 而不会管这个用户(客户端)是否以后会访问.。这就慢慢的衍生出了cookie。


大多数主要的门户网站使用 cookies


Cookies的四个组成部分:


1) 在HTTP响应报文中有 一个cookie的首部行

2) 在HTTP请求报文含有 一个cookie的首部行

3) 在用户端系统中保留有 一个cookie文件,由用 户的浏览器管理

4) 在Web站点有一个后 端数据库


例如:


Susan总是用同一个PC使 用Internet Explore上 网

她第一次访问了一个使 用了Cookie的电子商务 网站

当最初的HTTP请求到达 服务器时,该Web站点 产生一个唯一的ID,并 以此作为索引在它的后 端数据库中产生一个项

1689681486294-1ea0a388-f989-4da0-af86-f84d09579696.png


Cookie能带来什么?

用户验证 、购物车 、 推荐 、 用户状态 (Web e-mail)


如何维持状态:


  • 协议端节点:在多个事务上 ,发送端和接收端维持状态
  • cookies: http报文携带状 态信息


Cookies与隐私


  • Cookies允许站点知道许多关于 用户的信息
  • 可能将它知道的东西卖给第三 方
  • 使用重定向和cookie的搜索引 擎还能知道用户更多的信息
  • 如通过某个用户在大量站点 上的行为,了解其个人浏览 方式的大致模式
  • 广告公司从站点获得信息


Web缓存(代理服务器)


目标:不访问原始服务器,就满足客户的请求


操作:


  1. 用户设置浏览器: 通 过缓存访问Web
  2. 浏览器将所有的HTTP 请求发给缓存
  3. 在缓存中的对象:缓存 直接返回对象

如对象不在缓存,缓存 请求原始服务器,然后 再将对象返回给客户端


1689681785300-4aa31dba-6f16-458d-a01b-989183093933.png


缓存即是客户端又是服务器端


通常 缓存是由ISP安装 (大学、公司、居民区ISP)


为什么要使用Web缓存 ?


  • 降低客户端的请求响应时 间
  • 可以大大减少一个机构内 部网络与Internent接链路上的流量
  • 互联网大量采用了缓存: 可以使较弱的ICP也能够 有效提供内容


举例:

1689682192181-d0e98056-3325-455e-a8c9-a9f7ad8e9212.png


1689682250652-32063801-0bd3-4e4c-bdab-846bcb1d2f79.png


1689682261137-83c667b3-a5a0-44cd-9575-95e7a1d3cf6e.png


FTP : 文件传输协议



早期通过ftp来分享文件,内容等, 现在我们是通过网盘、 云盘等。


现在的ftp已经很少用了


1689765422723-982bc3e2-084d-4814-ac41-f95e3193fcf6.png


  • 向远程主机上传输文件或从远程主机接收文件


  • 客户/服务器模式


  • 客户端:发起传输的一方

服务器:远程主机

  • ftp: RFC 959


  • ftp服务器:端口号为21


FTP: 控制连接与数据连接分开


  1. FTP客户端与FTP服务器通过端口21联系,并使用TCP为传输 协议
  2. 客户端通过控制连接获得身份 确认
  3. 客户端通过控制连接发送命令 浏览远程目录
  4. 收到一个文件传输命令时,服 务器打开一个到客户端的数据 连接
  5. 一个文件传输完成后,服务器 关闭连接


书上是服务器用自己的20号端口与客户进程建立数据传送连接


1689765608857-c9e55177-2e0c-4fd2-9774-36cec17a1903.png


  1. 服务器打开第二个TCP数据连接用 来传输另一个文件
  2. 控制连接: 带外( “out of band” )传送
  3. FTP服务器维护用户的状态信息: 当前路径、用户帐户与控制连接对 应 有状态


FTP命令、响应


相关命令样例:

  • 在控制连接上以ASCII文本 方式传送
  • USER username
  • PASS password
  • LIST:请服务器返回远程主机当前目录的文件列表
  • RETR filename:从远程主机的当前目录检索文件 (gets)
  • STOR filename:向远程主机的当前目录存放文件 (puts)


相关返回码样例:

状态码 和1 状态信息(同HTTP )

1689765757893-aa89057d-24d4-4f70-998f-dca368484fe5.png


Email



1689765815073-4a74b9f9-703b-4bc7-ae93-022be45b0c9d.png

3个主要组成部分:


用户代理 、 邮件服务器 、 简单邮件传输协议:SMTP


简要描述:


用户通过用户代理 完成对邮件的编写 等操作 ,然后将邮件发送给邮件服务器, 邮件服务器就会将该邮件发送给目标邮件服务器。 目标用户通过登录客户端软件(QQ邮箱等用户代理)来阅读用户代理从用户服务器上拉去的邮件。


他们之间遵守的协议就是SMTP协议。


组成一: 用户代理


又名 “邮件阅读器”


撰写、编辑和阅读邮件的客户端软件。如Outlook、Foxmail


输出和输入邮件保存在服务器 上


组成二: 邮件服务器


邮件服务器作用:


  • 邮箱中管理和维护发送给用户 的邮件
  • 输出报文 队列保持待发送邮件 报文
  • 邮件服务器之间的SMTP协议 :发送email报文
  • 客户:发送方邮件服务器

服务器:接收端邮件服务 器


1689766524175-26628183-6c0c-451c-8383-84ddccbdbe58.png


组成三: 简单邮件传输协议:SMTP


  • 使用TCP在客户端和服务器之间传送报文,端口号为25
  • 直接传输:从发送方服务器到接收方服务器
  • 传输的3个阶段: 握手 、传输报文 、关闭
  • 命令/响应交互


  • 命令:ASCII文本

响应:状态码和状态信息

  • 报文必须为7位ASCII码


规范了邮件的内容必须是在七位ASCⅡ码范围内(最原始的。)


举例:


Alice给Bob发送报文

1689767035146-c879dd66-a6b5-4bd6-b882-1387761fc4f8.png



简单的交互


1689767137134-645671dd-fe0c-46a1-a16e-1940bf873497.png


上述的这种传输就是纯明文之间的传输 ,不做任何的保护措施, 也就是说黑客是可以随时截胡这些内容, 并且可见的。


SMTP:总结


  • SMTP使用持久连接
  • SMTP要求报文(首部 和主体)为7位ASCII编 码
  • SMTP服务器使用 CRLF.CRLF决定报文的 尾部


HTTP比较 :


  • HTTP:拉(pull)
  • SMTP:推(push)


二者都是ASCII形式的命令/响应交互、状态码


  • HTTP:每个对象封装在各自 的响应报文中
  • SMTP:多个对象包含在一个 报文中


邮件的报文格式


1689767574612-9c235111-2677-4e69-9776-454c01fa5164.png

报文格式 : 多媒体扩展

1689767592138-d6436dde-8c6f-4b1d-9024-ab5a64262fd6.png


邮件访问协议:


1689767642210-0aea289a-f768-42dc-986a-11c737bdfbe3.png


SMTP: 传送到接收方的邮件服务器


  • 邮件访问协议:从服务器访问邮件
  • POP:邮局访问协议(Post Office Protocol)[RFC 1939]
  • 用户身份确认 (代理<–>服务器) 并下载
  • IMAP:Internet邮件访问协议(Internet Mail Access Protocol)[RFC 1730] 或者也可以是HTTP协议
  • 更多特性 (更复杂) ; 在服务器上处理存储的报文
  • HTTP:H****otmail , Yahoo! Mail等


扩展PoP3协议 :

1689768143070-03ba6070-c127-4ab6-9527-e46ed1a92f25.png


POP3(续)


  • 先前的例子使用 “下载 并删除”模式。
  • 如果改变客户机,Bob不 能阅读邮件
  • “下载并保留”:不同 客户机上为报文的拷贝
  • POP3在会话中是无状态 的
  • 本地管理文件夹


IMAP


  • IMAP服务器将每个报文 与一个文件夹联系起来
  • 允许用户用目录来组织 报文
  • 允许用户读取报文组件
  • IMAP在会话过程中保留 用户状态:
  • 目录名、报文ID与目录名 之间映射


DNS

Email

DNS

P2P应用

CDN

TCP套接字(Socket)编程

UDP套接字编程

目录
相关文章
|
6天前
|
缓存 网络协议 前端开发
深入了解常见的应用层网络协议
深入了解常见的应用层网络协议
深入了解常见的应用层网络协议
|
9月前
|
网络协议 网络架构
一文搞定网络层协议
本文详细的介绍了网络层的所有的细节,学习完本章小白将打下坚实的基础。
|
6天前
|
网络协议 网络架构
【计算机网络】应用层
【计算机网络】应用层
48 0
【计算机网络】应用层
YI
|
10月前
|
网络协议 API
计算机网络-应用层(上)
计算机网络-应用层
YI
104 0
|
6天前
|
网络协议
网络层有哪些常见协议
网络层有哪些常见协议
|
7月前
|
网络协议
应用层报文怎么传输到另一个应用层的?
应用层报文怎么传输到另一个应用层的?
|
8月前
|
缓存 网络协议 算法
【计算机网络】应用层和运输层网络协议分析
【计算机网络】应用层和运输层网络协议分析
|
9月前
|
缓存 网络协议 网络安全
网络层协议与应用(二)
网络层协议与应用(二)
162 0
|
9月前
|
网络协议 网络性能优化 网络架构
网络层协议与应用(一)
网络层协议与应用(一)
58 0
|
9月前
|
存储 域名解析 编解码
应用层续(下)
应用层续(下)
183 0