第11章——网络编程

客户端-服务器编程模型

  • 一个应用是由一个服务器进程和一个或多个客户端进程组成。服务器管理某种资源,并且通过操作这种资源来为它的客户端提供某种服务
  • 客户端-服务器模型的基本操作是事务(一系列步骤)
  • 客户端和服务器是进程,而不是常提到的机器或者主机

网络

  • 对主机而言,网络是一种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
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值