
轻量级httpd服务器源码解读
Tinyhttpd 是J. David Blackstone在1999年写的一个不到 500 行的超轻量型服务器
专栏功能:
1、解读简洁又严谨的源代码
2、debug时遇到的问题及解决方案
3、httpd服务器的性能测试
4、真实场景中如何优化
Daemon在路上
我是Daemon,一起打怪升级吧,私信一般都会回~
展开
-
架构分析:httpd服务器处理连接流程图
服务器端流程图如下所示:从左到右可分为四部分:1、创建并监听套接字2、获取已建立连接套接字,提取method/url/query_string3、判断是否为cgi脚本(1)否,返回服务器文件至客户端(2)是,执行cgi脚本,将输出数据返回值客户端4、关闭连接,重新监听...原创 2019-06-06 17:16:09 · 785 阅读 · 0 评论 -
技术储备(二):http请求报文和响应报文
一、GET和POSThttp常用请求分为两种方式:GET和POST。浏览器向服务器发送http请求报文格式为:请求行+请求头部+空白行+(请求数据)注意:1、请求数据只有在POST时才有,在请求头部有一字段,Content_Length表示请求数据的长度。GET方式没有请求数据,http请求报文以空白行结尾。2、使用GET时数据附加在URL后面,和URL以?分开,各个变量之间以&...原创 2019-05-31 20:39:10 · 372 阅读 · 0 评论 -
技术储备(一):CGI介绍
通用网关接口(CGI,Common Gateway Interface)是一种Web服务器和服务器端编程进行交互的方式。CGI完全独立于编程语言,操作系统和Web服务器。目前,它是最常见的服务器端编程技术,几乎每一个Web服务器都支持。此外,所有服务器用几乎同样的方式实现它,这样你可以为一个服务器编写CGI脚本,然后分发到任何Web服务器上运行。就像上面说的,服务器需要一种方法来知道哪些URL映...转载 2019-05-30 20:06:08 · 1042 阅读 · 0 评论 -
DEBUG(一):解决execl(path,NULL)执行出错
源码段if (pid == 0) /* child: CGI script */ { char meth_env[255]; char query_env[255]; char length_env[255]; dup2(cgi_output[1], 1); dup2(cgi_input[0], 0); close(cgi_output[0]); close(...原创 2019-05-30 20:01:37 · 830 阅读 · 2 评论