tinyhttpd源码解析,最简单的HTTP服务器
简介
tinyhttpd 是一个不到 500 行的超轻量型 Http Server,全部用ANSI C编写,用来学习非常不错,可以帮助我们真正理解服务器程序的本质。
看完所有源码,真的感觉有很大收获,无论是 unix 的编程,还是 GET/POST 的 Web 处理流程,都清晰了不少。废话不说,开始我们的 Server 探索之旅。
主要函数
所有函数的声明
1 | void accept_request(int); |
tinyhttpd 是一个不到 500 行的超轻量型 Http Server,全部用ANSI C编写,用来学习非常不错,可以帮助我们真正理解服务器程序的本质。
看完所有源码,真的感觉有很大收获,无论是 unix 的编程,还是 GET/POST 的 Web 处理流程,都清晰了不少。废话不说,开始我们的 Server 探索之旅。
所有函数的声明
1 | void accept_request(int); |
C语言发送http请求和普通的socket通讯,原理是一样的.无非就三步connect()连上服务器,send()发送数据,recv()接收数据.只不过发送的数据有特定的格式.下面的是简单发送一个http请求的例子
域名系统(Domain Name System)是一种分层的分布式命名系统,用于连接到互联网或互联网上的计算机、服务或其他资源。它将更容易记忆的域名转换为使用底层网络协议定位和识别计算机服务和设备所需的数字IP地址.
DNS 是计算机域名系统 (Domain Name System 或Domain Name Service) 的缩写,它是由解析器和域名服务器组成的。域名服务器是指保存有该网络中所有主机的域名和对应IP地址,并具有将域名转换为IP地址功能的服务器。
域名系统的发展要从ARPAnet网络的发展说起,DNS就是为了解决ARPAnet的一些问题而开发的。ARPAnet是美国国防部在20世纪60年代建立的一个试验性计算机网络,