http - 谁负责 OSI 中的表示层和 session 层?

标签 http networking tcp router osi

我正在学习 OSI 的 7 层。但我目前正试图理解这最底层的两层。具体来说 - 谁在这些层中执行操作?它们被称为软件层,但浏览器本身是否会完成所有这些以及如何完成?或者浏览器将其传递给不同的程序?它是如何工作的?

例如,我在浏览器中输入 google.com,然后浏览器将建立连接并发送 GET / HTTP/1.1到服务器。但是,这些层中的每一层究竟是如何发挥作用的呢?

这是我到目前为止的理解。

7. Layer - Application layer (Browser, HTTP)
6. Layer - Presentation layer (??)
5. Layer - Session layer (??)
4. Layer - Transport layer (Operating System)
3. Layer - Network layer (Routers)
2. Layer - Data link layer (Switches and bridges)
1. Layer - Physical layer (Modem and cables)

最佳答案

在实践中,主要使用 TCP/IP 模型,并且所有三个顶层(即应用程序、表示和 session )都由应用程序管理。
TCP/IP vs OSI

在 Web 浏览器的情况下,浏览器将:

  • session 层:维护一个session token对于每个 session 。
  • 表示层:根据http header中的编码解析所有数据来自服务器的每个响应(例如 Content-Type: image/png 或 Content-Type: text/html;charset=utf-8)
  • 应用层:按照实现的方式呈现页面并与用户交互。
  • 关于http - 谁负责 OSI 中的表示层和 session 层?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59019466/

    相关文章:

    xml - node http.get() —— 我如何获得返回的 XML,以便我可以用它做一些事情?

    java - 更改 javax.servlet.http.HttpServlet 中的响应代码

    HTTP 状态代码 4xx 与 5xx

    python - gsm网卡端口映射与python中的udp套接字

    c# - Unity 作为模拟环境——在执行大计算时延迟 Update() 循环

    javascript - 如何通过同一个流发送不同编码的数据?

    java - 尽管在 Postman 上工作,但在 Spring 中出现 UnknownHostException

    java - 我们如何处理 ConnectException?

    Python UDP广播

    c++ - 提升 asio receive() 与 read()