Key-word: Web服务器
基本概念:
Web服务器通常具备3种用户操作:列举目录信息、cat文件、运行程序。
本章要编写的Web服务器是对上章的ls服务器的扩展,扩展了cat文件、运行程序功能。
但如何能使一个服务器接收多个请求,实现不同的功能?用fork实现。
内容概述:
编写建立服务器端socket的函数:make_server_socket(int portnum),该函数只是将上一章讲的服务器程序流程中的前三步合为整体,即:创建一个socket、给socket绑定一个地址、监听接入请求,分别对应socket、bind、listen函数调用。
编写建立到服务器的连接的函数:connect_to_server(hostname, portnum),该函数只是将上一章讲的客户端程序流程的前两步合为整体,即:创建一个socket、将该socket连接到服务器,分别对应socket、connect函数调用。
服务器在处理客户端请求时有两种处理方法:1)自己做(DIY);2)代理。
之前讲的所有服务器程序都是自己做,即该进程自己处理。代理指的是创建一个新的进程来处理,可以用fork创建子进程来实现,在子进程中要将子进程的标准输出指向accept时得到的文件描述符,这样才可以通信。
Web服务器就是以上所述内容的综合运用,用fork创建子进程来处理客户端不同的功能请求,有更复杂的通信协议,但基本架构与其他服务器相同。Web服务器完成之后,就可以用Web浏览器来访问Web服务器了。