我打算在我的项目中使用 php socket。它需要用户登录才能根据会话填充内容。所以我的问题是,TCP/IP 协议也会像 HTTP 协议一样为每个请求发送/接收 cookie,或者我必须自己实现 cookie 系统。我的项目不依赖于浏览器,它就像一个应用程序,将通过套接字进行通信。
谁能用简单的话解释一下?
提前致谢。
我打算在我的项目中使用 php socket。它需要用户登录才能根据会话填充内容。所以我的问题是,TCP/IP 协议也会像 HTTP 协议一样为每个请求发送/接收 cookie,或者我必须自己实现 cookie 系统。我的项目不依赖于浏览器,它就像一个应用程序,将通过套接字进行通信。
谁能用简单的话解释一下?
提前致谢。
HTTP 是嵌套在 TCP 有效负载中的应用程序协议。如果您想使用原始 TCP,您可以设计自己的通信方案。由于您询问 cookie,您可能需要一些持久性。cookie 被实现为 HTTP 标头。您仍然可以在不涉及浏览器的情况下使用 HTTP。这样您就可以利用许多 HTTP 服务器和服务器端脚本语言。
Cookie 仅在应用层 (http) 上实现。在 tcp 中不需要 cookie,因为对于每个 tcp 连接,都有一个由客户端 ip 和端口号、服务器 ip 和端口号组成的元组套接字对。这些套接字对是唯一的,并且唯一地确定了客户端。然而,http 并没有通过,因为 http 不维护客户端 IP 地址或客户端端口号等的记录...... http 的唯一目的是为客户端服务。所以为了唯一定义客户端,http使用cookies和session ID。这有助于 http 找出客户端发送的数据的目的并相应地提供服务。
所以我的问题是 TCP/IP 协议也像 HTTP 协议一样为每个请求发送/接收 cookie
不会。Cookie 由 HTTP 协议定义。其他一些协议也有类似的概念,但 TCP 本身没有等价物。TCP 也没有真正的“请求”概念。只有一个连接,数据流过它。
(TCP 确实有一个称为SYN cookie的功能,但这与 HTTP cookie 完全无关。)
您可能需要考虑使用WebSockets协议。WebSockets 在 HTTP 上运行,因此可以利用 HTTP 的某些功能,包括 cookie。