【问题标题】:Do TCP protocol also deal with cookies as HTTP protocol do?TCP 协议是否也像 HTTP 协议一样处理 cookie?
【发布时间】:2018-11-13 06:32:06
【问题描述】:

我打算在我的项目中使用 php socket。它需要用户登录才能根据会话填充内容。所以我的问题是,TCP/IP 协议也会像 HTTP 协议一样为每个请求发送/接收 cookie,或者我必须自己实现 cookie 系统。我的项目不依赖浏览器,它就像一个应用程序,通过socket进行通信。

谁能用简单的话解释一下?

提前致谢。

【问题讨论】:

    标签: php sockets tcp tcp-ip php-socket


    【解决方案1】:

    HTTP 是一种嵌套在 TCP 负载中的应用程序协议。如果您想使用原始 TCP,您可以设计自己的通信方案。由于您询问 cookie,您可能需要一些持久性。 cookie 被实现为 HTTP 标头。您仍然可以在不涉及浏览器的情况下使用 HTTP。这样您就可以利用许多 HTTP 服务器和服务器端脚本语言。

    【讨论】:

      【解决方案2】:

      所以我的问题是 TCP/IP 协议也像 HTTP 协议一样为每个请求发送/接收 cookie

      没有。 Cookie 由 HTTP 协议定义。其他一些协议也有类似的概念,但 TCP 本身没有等价物。 TCP 也没有真正的“请求”概念。只有一个连接,数据流过它。

      (TCP 确实有一个称为SYN cookies 的功能,但这与 HTTP cookie 完全无关。)

      您可能需要考虑使用WebSockets 协议。 WebSockets 在 HTTP 上运行,因此可以利用 HTTP 的某些功能,包括 cookie。

      【讨论】:

      • 所以你的意思是我必须使用http头,我必须实现自己的系统来处理cookie?
      • 在tcp/ip协议的情况下如何处理cookies?我应该在应用程序和服务器端设计自己的 http 方案吗?
      【解决方案3】:

      Cookie 仅在应用层 (http) 上实现。在 tcp 中不需要 cookie,因为对于每个 tcp 连接,都有一个由客户端 ip 和端口号、服务器 ip 和端口号组成的元组套接字对。这些套接字对是唯一的,并且唯一地确定了客户端。但是,http 并没有通过,因为 http 不保留客户端 IP 地址或客户端端口号等的记录...... http 的唯一目的是为客户端服务。所以为了唯一定义客户端,http使用cookies和session ID。这有助于 http 弄清楚客户端发送数据的目的并提供相应的服务。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-07-31
        • 1970-01-01
        • 1970-01-01
        • 2018-06-25
        • 2011-08-20
        • 1970-01-01
        相关资源
        最近更新 更多