客户端-服务器编程模型
- 一个应用是由一个服务器进程和一个或多个客户端进程组成。服务器管理某种资源,并且通过操作这种资源来为它的客户端提供某种服务
- 客户端-服务器模型的基本操作是事务(一系列步骤)
- 客户端和服务器是进程,而不是常提到的机器或者主机
网络
- 对主机而言,网络是一种I/O设备,是数据源和数据接收方
- 一台主机可以发送一段位(称为帧)到这个网段内的其他任何主机
全球IP因特网
- 每台因特网主机都运行实现TCP/IP协议的软件
- 因特网的客户端和服务器混合使用套接字接口函数和Unix I/O函数来进行通信
- 域名集合和IP地址集合之间的映射是通过分布世界范围内的数据库DNS来维护的
- 因特网客户端和服务器通过在连接上发送和接收字节流来通信,一个套接字是连接的一个端点,每个套接字都有相应的套接字地址,是由一个因特网地址和一个16位的整数端口组成的
- 一个连接是由它两端的套接字地址唯一确定的,这对套接字地址叫做套接字对
套接字接口
- 客户端和服务器使用
socket函数来创建一个套接字描述符 - 客户端通过调用
connect函数来建立和服务器的连接 bind函数告诉内核将addr中的服务器套接字地址和套接字描述符sockfd联系起来listen函数将sockfd从一个主动套接字转化为一个监听套接字,该套接字可以接受来自客户端的连接请求- 服务器通过调用
accept函数来等待来自客户端的连接请求 getaddrinfo函数将主机名、主机地址、服务名和端口号的字符串表示转化成套接字地址结构getnameinfo函数将套接字地址结构转换成相应的主机和服务名字符串
Web服务器
- Web客户端和服务器之间的交互用的是一个基于文本的应用级协议,叫做HTTP
- 对于Web客户端和服务器而言,内容是与一个MIME(多用途的网际邮件扩充协议)类型相关的字节序列
- Web服务器以两种不同的方式向客户端提供内容:取一个磁盘文件,并将它的内容返回给客户端,静态内容;运行一个可执行文件,并将它的输出返回给客户端,动态内容
- 每条由Web服务器返回的内容都是和它管理的某个文件相关联的,这些文件中的每一个都有一个唯一的名字,叫做URL

被折叠的 条评论
为什么被折叠?



