socket
socket 是通信的基石。支持 TCP/IP 等协议的基本操作单元。
应用层通过传输层进行数据通信时,TCP 会遇到同时为多个应用程序进程提供并发服务的问题。多个 TCP 连接或多个应用程序进程可能需要通过同一个 TCP 协议端口传输数据。为了区别不同的应用程序进程和连接,许多计算机操作系统为应用程序与 TCP/IP 协议交互提供了套接字 (Socket) 接口。应用层可以和传输层通过 Socket 接口,区分来自不同应用程序进程或网络连接的通信,实现数据传输的并发服务。
Session 与 Cookie 的对比
HTTP 是一种不保存状态,即无状态(stateless)协议。也就是说 HTTP 协议自身不对请求和响应之间的通信状态进行保存。那么我们保存用户状态呢?Session 机制的存在就是为了解决这个问题,Session 的主要作用就是通过服务端记录用户的状态。
- 实现机制:Session 的实现常常依赖于 Cookie 机制,通过 Cookie 机制回传 SessionID;
- 大小限制:Cookie 有大小限制并且浏览器对每个站点也有 cookie 的个数限制,Session 没有大小限制,理论上只与服务器的内存大小有关;
- 安全性:Cookie 存在安全隐患,通过拦截或本地文件找得到 cookie 后可以进行攻击,而 Session 由于保存在服务器端,相对更加安全;
- 服务器资源消耗:Session 是保存在服务器端上会存在一段时间才会消失,如果