1

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

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

提前致谢。

4

3 回答 3

2

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

于 2018-06-03T23:47:32.177 回答
1

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

于 2018-09-13T04:01:53.190 回答
1

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

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

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

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

于 2018-06-04T00:03:07.007 回答