2022年5月15日记:Linux服务器开发,Darren老师,http/https服务器的实现

────────────────────────────────────
推荐一个 零声学院 免费公开课程,个人觉得老师讲得不错,分享给大家:[Linux,Nginx,ZeroMQ,MySQL,Redis,fastdfs,MongoDB,ZK,流媒体,CDN,P2P,K8S,Docker,TCP/IP,协程,DPDK等技术内容,立即学习]
后台服务器:https://course.0voice.com/v1/course/intro?courseId=5&agentId=0
────────────────────────────────────

在这里插入图片描述
这里有一个时间顺序的问题,http建立的过程,先处理的accept_cb,然后是recv_cb,接着才是send_cb。对应了nginx11个状态。
content-type:text/html包头中写的是body的格式。

粘包问题

  • 定义包的长度
  • 分隔符
//读完一行显示下一行的开始位置
int readline(char *allbuf,int idx,char * linebuf)
{
		int len=strlen(allbuf);
		for(;idx<len;idx++)
		{
			if(allbuf[idx]=='\r' && allbuf[idx+1]=='\n')
			{
				return idx +=2;
			}else{
				*(linebuf++)=allbuf[idx];			
			}
		}
}
int http_requset(struct int ntyevent *ev)
{
	//GET POSt
	char linebuf[1024]={0};
	int idx=readline(ev->buffer,0,linebuf);
	if(strstr(linebuf,"GET"))
	{
	}else if(strstr(linebuf,"POST"))
	{
	}
}
typedef int NCALLBACK(int,int,void *);
struct ntyevent{
		int fd;
		int events;
		void *arg;
		int (*callback)(int fd,int events,void *arg);
		int status;
		char buffer[BUFFER_LENGTH];
		int length;
		long last_active;
		int method;
		int resource[1024];
}

在这里插入图片描述

总结

今日星期日,厨房忙活半天,捏饺子上网课,感叹这就是生活!从昨天的网课找到上面这张图,感觉自己撑死就算泛型编程愚昧之巅。虽然已经工作多年,但是仍然是个缺乏自信的蛮干家伙,锻炼还是少之又少。希望编程这条路还是可以越走越宽,通过努力肯定能够走上巅峰,至少是自己的巅峰。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

屯门山鸡叫我小鸡

加油

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

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

打赏作者

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

抵扣说明:

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

余额充值