您的位置:首页 > 房产 > 建筑 > 免费自制app软件手机_一般通过 什么意思_永久免费不收费的污染app_好的竞价账户托管外包

免费自制app软件手机_一般通过 什么意思_永久免费不收费的污染app_好的竞价账户托管外包

2025/4/27 9:24:00 来源:https://blog.csdn.net/weixin_74098337/article/details/147412940  浏览:    关键词:免费自制app软件手机_一般通过 什么意思_永久免费不收费的污染app_好的竞价账户托管外包
免费自制app软件手机_一般通过 什么意思_永久免费不收费的污染app_好的竞价账户托管外包

目录

一、HTTP是应用层协议

二、HTTP服务器

三、HTTP服务

认识请求中的uri

HTTP支持默认首页

响应 

功能完善

套接字复用


一、HTTP是应用层协议

HTTP下层是TCP协议,站在TCP的角度看,要提供的服务是HTTP服务。

这是在原来实现网络版计算器时,实现的TCPServer.hpp,在TCP上层是HttpServer时,为了方便代码阅读,修改上层服务的命名为http_server。

对于HTTP服务,接收一次请求字符串,做出一次响应。 

在TCP处理服务时,每个线程要做的内容。

 

为什么要这样处理,不同于网络版计算器。

1.由于TCP面向字节流,不管上层是什么服务(协议),都可能会出现读取到一个不完整请求的情况(黏包问题),所以,在网络版计算器实现时,添加了对协议的解析过程,比如内容长度、\r\n的分割等内容,标识可以有效的帮助我们对收到的请求做处理,确保至少有一个完整的请求。

2.对于HTTP,其实有较大的概率,能得到一个完整的请求,因此,不再添加对HTTP的黏包处理过程。

二、HTTP服务器

简单的搭建一个HTTP服务器,用Windows浏览器访问,查看HTTP请求格式。

我们可以简单的把HTTP的请求在服务器端直接打印出来。

接下来开始正式完成Http主体内容。

我们手写的HTTP服务的主要任务是序列化和反序列化这个过程。因此,如何保证HTTP要服务的字符串是一个完整的请求,并不详细的再去用代码实现。

三、HTTP服务

  • 一个HTTP服务中,有HTTP请求和HTTP响应。

  • 由一个完整的string转化为类成员变量,即结构化数据,这个过程就是反序列化。

  • 智能指针管理资源——RAII

  •  可以轻松的得到请求行。

  • 对应请求头和请求内容,相对复杂。 

  • 进一步反序列化,获取更加详细的信息 

  • 解析请求行 

  • 解析请求头

在Print函数中添加解析后打印的代码

认识请求中的uri

请求中没有指明某一个服务器资源时,请求的默认就是 /

HTTP支持默认首页

请求/ 并不表示请求服务器的根目录,这个根目录表示的是Web根目录。

  • 一般在实现服务器的同路径下,有一个保存客户端请求资源的目录,叫做wwwroot,即Web根目录,请求/,即表示请求wwwroot。
  • HTTP支持默认首页,所以每一个资源目录下都有index.html。

基于以上两点,请求/本质是请求HTTP服务下的 ./wwwroot/index.html。

  • 修改代码

 

  • 拼接首页 

 

  • 实际资源与url解耦合,我们可以自己定义path 

响应 

  • Linux支持telnet,可以自己构建完整请求。 

  • 服务器的工作是收到序列化的请求,把他反序列化后解析,按照请求构造一个序列化的响应 

因此,我们所写HTTP服务响应只有序列化的功能。

  •  详细字段

  •   序列化函数

  •  整理一个资源
  • Content-Type映射表

 

 

 

功能完善

  • 套接字复用

 

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com