当前位置 >> 课程学习 >> 第3章 >> 3.2 服务端与客户端

3.2 服务端与客户端

    在网络中,首先发起连接、传送数据或接收数据请求的一方,称为客户端;始终处于等待建立连接、接收数据或传送数据请求的一方,称为服务端。
    在HTTP协议通信中,web server始终等待用户发起HTTP请求,是服务端;浏览器首先发起请求,是客户端。在电子邮件的SMTP中,foxmail、thunder等首先发起连接请求,是客户端,sendmail等常驻程序始终运行等待请求,是服务端。
    服务端或客户端,取决于进程处于TCP协议中处理连接的哪一方。UDP协议有类似的情况。不过基于web程序设计主要工作在HTTP基础上,HTTP协议以TCP为基础,因为UDP不是我们讨论的主要内容。
    基于web的程序设计中所涉及到的所有技术,都运行在服务端,服务端所生成的HTML或Javascript代码,由客户端浏览器负责解释或执行。
    TCP协议
    TCP协议工作在网络第四层,是一种基于连接的协议,保证通信的完整和安全。TCP协议以端口标识主机中某个特定的进程。如通常使用80号端口代表HTTP协议服务端,25号端口代表SMTP电子邮件发送协议的服务端。每个端口只能由一个唯一的进程守候,因此可以用端口来表示协议想与之通信的进程。不能由两个不同的进程守候同一个端口,因此IIS和Apache不能同时使用80号端口。
    netstat
    netstat是UNIX和Windows下的一个实用工具,用于查看本机与外界连接的端口,包括作为服务器或作为客户端的。
    如图 19 netstat所示,本机在135和443等端口有服务器在运行,由本机的65231作为客户端在与本机的65232端口后的进程通信。

图 19 netstat