(项目)万年历online

一、web框架原理图
如果服务器采用非CGI方式处理浏览器的请求,则直接返回浏览器请求的资源即可。采用CGI方式的话则要执行CGI程序:
这里写图片描述

二、多线程http服务器的工作方法
1.http/1.0版本采用的是短连接:
我们要搭建的是多线程服务器,并且使用短连接,所以每当建立一个连接之后,就创建一个线程去处理这个请求,并将这个线程设置成分离状态,然后主线程继续处于监听状态。当线程处理完这个请求之后就断开连接。这样的一个来回就完成了连接请求。

2.支持实现GET和POST方法:
GET方法:如果GET方法只是简单的请求一份资源,而不去传递参数的话,则由服务器直接直接将请求资源返回即可。如果GET方法的url中带参,则要用CGI模式进行处理。
**POST方法:**POST方法则要直接使用CGI模式进行处理。POST方法的参数在消息正文中出现。

那么问题来了,如何判断请求的方法呢?
请求方法是在请求报头的请求行给出的,所以要按行读取请求报头,判断第一行中的方法,是否为CGI模式。
这里写图片描述

3.非CGI模式
当我们判断是GET请求时,若URL中没有参数,则使用非CGI模式。非CGI模式的执行方法比较简单,首先解析出请求路径,若请求的是合法资源则返回这个资源。
4.CGI模式
当是CGI模式处理请求的时候,就需要fork一个子进程,对子进程exec替换CGI程序。

三、项目整体逻辑
这里写图片描述

四、代码链接
GitHub链接:
日历计算器代码链接:

项目运行演示:
这里写图片描述
功能一:
这里写图片描述
这里写图片描述
功能二:
这里写图片描述
这里写图片描述
功能三:
这里写图片描述
这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Fly_bit

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值