小项目 跟QT翻金币差不多
1.webserver服务器原理
2.html语言基础介绍
ps:前端我迟早也要拿下
html语言
超文本标签语言
<> <>
此处详情查看linux服务器开发中html语言介绍
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>小飞博客</title>
</head>
<body>
<h3>题目标签</h3>
<br/>
<font color=rgb(255,246,143) size="7">文本标签</font>
<ul>
<li>无序标签</li>
<li>无需标签2</li>
</ul>
<br/>
<h3>分隔符</h3>
<br/>
<ol>
<li>有序标签</li>
<li>有序标签</li>
</ol>
<img src="a.jpg" alt="耀阳" title="耀阳" width="300" height="200" >
<br/>
<a href="https://www.cnblogs.com/lzfyz/" title="去博客" target="_blank">去博客</a>
</body>
</html>
3.wireshark抓包http协议
http get post两种请求
http请求
![Image [1]](I:\webser\Image [1].png)
请求行: GET /demo.html HTTP/1.1\r\n
请求方式 /请求的内容 版本\r\n
空行 \r\n 数据
http应答
![Image [3]](I:\webser\Image [3].png)
状态行
http/1.1 200 ok\r\n
版本 状态码 状态信息
-
- 401 Unauthorized 请求未经授权,这个状态代码必须和[WWW-Authenticate](http://www-authenticate/)报头域一起使用 - 403 Forbidden 服务器收到请求,但是拒绝提供服务 - 404 Not Found 请求资源不存在,eg:输入了错误的URL - 500 Internal Server Error 服务器发生不可预期的错误 - 503 Server Unavailable 服务器当前不能处理客户端的请求,一段时间后可能恢复正常
消息报头
文件的类型(必填的)
![Image [5]](I:\webser\Image [5].png)
文件的长度(可填可不填,填一定填对)
![Image [6]](I:\webser\Image [6].png)
空行
数据
要发送的数据
![Image [7]](I:\webser\Image [7].png)
4.采用epoll实现
1.搭建框架
1.epoll链接
2.读取请求 保留第一行
5.项目总结
ps1:读取出错问题cfd 此处没有进行else
也就是如果lfd 进行三次握手 之后照样进读取函数故此报错->没有请求数据
ps2:请求行最后多发送几个字节 但是读缓冲区只有2个字节 我一填 导致后面发送文件时 读缓冲区有错误信息与发送文件一起发送
ps3:发送大文件卡死问题 信号屏蔽 ->浏览器读缓冲区被写爆 我们只能暂缓写数据的时长 或者采取 libeventweb服务器方式 我再epoll上用的us
代码
https://kxd.lanzoul.com/izPRQ13tkvdi
标签:http,请求,标签,Image,webserver,Linux,服务器,webser From: https://www.cnblogs.com/lzfyz/p/17590767.html