第11章 网络编程

11.1 客户端-服务器编程模型

 服务器管理某种资源,并且通过操作这种资源来为它的客户端提供某种服务
在这里插入图片描述

11.2 网络

 以太网:最流行的局域网技术,通常跨越一些小的区域。
在这里插入图片描述
 桥接以太网:使用一些电缆和叫作网桥的小盒子,多个以太网段跨越连接成较大的局域网,称为桥接以太网。
a
 互联网络(小写的internet):多个不兼容的局域网通过叫作路由器的特殊计算机连接起来,组成一个互联网络
 互联网络特性:能由采用完全不同和不兼容技术的各种局域网和广域网组成。
 特性的实现:如何在不兼容的网络传输数据?
●命名机制(从哪发到哪,怎么标识):定义统一的主机地址格式
●传送机制(发什么):定义一种把数据位捆扎成不连续的片(包)的统一方式
在这里插入图片描述
 数据传输步骤:
在这里插入图片描述

11.3 全球IP因特网

在这里插入图片描述
11.3.1 IP地址
 类型:一个IP地址就是一个32位无符号整数
 不足:将标量地址放在结构中,是套接字接口早期实现的不幸产物,应该再定义一个标量类型
 格式:通常以点分十进制表示法来表示,可以用hostname来确定自己主机的点分十进制地址
 扩展:处理大端小端法、IP和点分十进制转换见书

11.3.2因特网域名
 由来:IP地址不太好记
 映射:通过DNS实现
 映射规则:一对一、多个域名映射同一个IP地址、多个域名映射同一组的多个IP地址

11.3.3因特网连接
 连接的属性:连接是点对点的,是全双工的,也是可靠的
 套接字:套接字是连接的一个端点
 套接字地址:是由一个因特网地址和一个16位的整数端口组成的,用“地址:端口”表示
 端口:客户端套接字的端口是内核自动分配的,称为临时端口;服务器的端口通常是某个知名端口,如web使用80
 套接字对:(cliaddr:cliport,servaddr:servport)
在这里插入图片描述

11.4套接字接口 (看书)

 概念:是一组函数,和Unix I/O结合起来,用以创建网络应用
在这里插入图片描述

11.5 Web服务器

11.5.1 Web基础
 HTTP协议:超文本传输协议
 HTML:超文本标记语言

11.5.2 Web内容
 两种方式:每个服务器有自己的规则选择哪种方式
●取磁盘文件:通过URL通用资源定位符来区主机上的文件,最小的URL后缀是“/”字符,代表默认主页,缺失时浏览器自动添加
●运行可执行文件:URL中在文件名后包括程序参数。“?”字符分割文件名和参数,每个参数用“&”隔开

11.5.3 HTTP事务
●HTTP请求
URI是URL的后缀,包括文件名和可选的参数

GET / HTTP/1.1 
请求行:method URI version

Host:www.123.com
请求报头:header-name:header_data

●HTTP响应

HTTP/1.0 200 OK
响应行:version status-code status-message

11.5.4 服务动态内容
 CGI:通用网关接口
 CGI由来:服务器和客户端间动态内容的提供较为复杂,如如何传参,服务器如何传递给子进程信息。用CGI解决这些问题

 1、客户端如何将程序参数传递给服务器
在URI中传递
 2、服务器如何传递参数给子进程
在调用execve之前,子进程将CGI环境变量QUERY_STRING设置为参数,程序在运行时可以用getenv引用
 3、服务器如何将其他信息传递给子进程
在这里插入图片描述
 4、子进程将它的输出发送到哪里
一个CGI程序将动态内容发送到标准输出,在子进程加载并运行CGI程序之前,它使用dup2函数将标准输出重定向到客户端相关联的已连接描述符,所以CGI写到标准输出的内容会直达客户端。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值