1、客户端-服务器
服务器:管理某种资源,并通过操作这种资源来为它的客户端提供某种服务。
事务(transaction):C-S模型的基本操作
Ø 客户端发送请求
Ø 服务器接收请求,解释,操作资源
Ø 服务器发送响应,并等待下一个请求
Ø 客户端收到响应并处理
客户端和服务器是进程。
2、网络
网络的物理接口是网络适配器。
网络是一个按照地理远近组成的层次系统。
最底层LAN(Local Area Network,局域网),最流行的局域网技术是“以太网”(Ethernet)。
以太网段:包括 电缆(通常是双绞线)、集线器。
桥接以太网(bridged Ethernet):电缆和网桥(bridge)将多个以太网段连接成较大的局域网。
局域网的简化表示:集线器、网桥和电缆 画成一根水平线。
互联网络(internet):多个不兼容的局域网、广域网通过路由器(router)连接起来。
广域网(Wide-Area-Network,WAN):覆盖的地理范围比局域网大。
运行在每台主机和路由器上的协议软件,消除不同网络之间的差异。
协议(protocol):控制主机和路由器协同工作来实现数据传输。
Ø 命名机制:为每台主机分配互联网络地址(internet address),唯一的标识主机。
Ø 传送机制:数据位捆扎成不连续的片(包:包头、有效载荷)的统一方式。
3、全球IP因特网
最著名和最成功的互联网络实现。
TCP/IP协议(Transmission Control Protocol/Internet Protocol,传输控制协议/互联网络协议)
互联网看做是世界范围内的主机集合,具有三个特性:
Ø 主机集合被映射为一组32位的IP地址。
Ø IP地址被映射为一组因特网域名(Internetdomain names)
Ø 因特网主机上的进程通过连接(connection)和任何其他因特网主机上的进程通信。
3.1、IP地址
struct in_addr
{
unsignedint s_addr;
};
IP地址通常以“点分十进制表示法”表示。
TCP/IP为任意整数数据定义了统一的网络字节顺序:大端字节顺序
Unix提供网络和主机字节顺序转换接口(参考APUE)、IP地址和点分十进制串间转换接口。
hostname -i 查看IP地址
3.2、因特网域名(domain name)
域名:由一串用点分隔的单词组成的Internet上某一台计算机或计算机组的名称,用于在数据传输时标识计算机的电子方位(有时也指地理位置)。
DNS(网域系统,Domain Name System):是因特网的一项核心服务,它作为可以将域名和IP地址相互映射的一个分布式数据库,能够使人更方便的访问互联网,而不用去记住能够被机器直接读取的IP地址数串。
struct hostent
{
char*h_name;
char**h_aliases;
int h_addrtype;
int h_length;
char**h_addr_list;
};
#include <netdb.h> 中gethostbyname 函数和gethostbyaddr函数,从DNS数据库中检索任意的主机条目。
本地回送地址(loopback address)127.0.0.1
命令hostname 来获取本地主机的实际域名。
域名和IP地址映射:
Ø 一一映射
Ø 多个域名映射为同一个IP地址
Ø 多个域名映射多个IP地址
Ø 某些合法的域名没有映射IP地址
3.3、因特网连接
4、套接字接口
参考《APUE》
5、Web服务器
5.1、Web基础
(1)HTTP
Hypertext Transfer Protocol 超文本传输协议
Web客户端(即浏览器)和服务器之间交互的基于文本的应用级协议。
(2)HTML
Hypertext Markup Language 超文本标记语言
Web内容可以用HTML语言来编写。
告诉浏览器如何显示网页中的各种文本和图形对象。
5.2、Web 内容
Web内容有两种:
² 静态内容(static content):磁盘文件。
² 动态内容(dynamic content):可执行文件产生的输出。
Web服务器以两种不同的方式向客户端提供内容:
² 服务静态内容:取一个磁盘文件,并返回给客户端。
² 服务动态内容:运行一个可执行文件,并将输出返回给客户端。
URL(Universal Resource Locator,通用资源定位符):每个Web服务器管理的文件都有一个唯一的名字,。
5.3.HTTP事务
(1)HTTP请求
请求行
零个或多个请求报头
空文本行终止报头列表
(2)HTTP响应
响应行
零个或多个响应报头
空文本行终止报头
响应主体
5.4、服务动态内容
6、综合:TINY Web服务器