第十一章 网络编程

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服务器

你可能感兴趣的:(第十一章 网络编程)