HTTP服务器的设计与思考
来源:互联网 发布:农村淘宝加盟费用 编辑:程序博客网 时间:2024/05/21 22:22
1、服务器设计前的思考
HTTP 和 HTTPS 都是应用层的一种协议,他们的底层实际上是通过 TCP 进行传输的。因此,要实现一个 Web 框架,就必须要对浏览器访问 Web 服务器的过程做一个了解。
服务端已经运行起了服务,因此在服务器启动后便开始通过 Socket 监听端口上的请求。这时,客户端浏览器想要访问服务器资源时,就会发送相应的 HTTP 或者 HTTPS 请求。当服务端收到请求后,就会处理这部分请求,返回客户端所需的资源。
处理与客户端建立连接使用 accept()
方法;真正对于服务器内部的相关逻辑,全部由基类 ServerBase
来实现;先确定好基类的基本设计,在ServerBase
模板类中,我们只需预留一个接口start()
用于启动服务器给外部调用。
2、服务器的设计
实现一个 Web 服务器,最重要的就是对来自客户端的请求信息进行解析,为此,我们需要在命名空间中定义一个 Request
结构体
包括:http版本,端口号,请求方法,请求路径(采用正则表达式进行匹配)
3、实现基类
首先来实现 start()
。实现 start()
时,我们要将考虑下面几个问题:
- 默认资源应该在最后被添加到
all_resources
中,当我们处理请求路径时,应该先处理好所有的非特殊路径,当找不到匹配请求路径时,再使用默认的请求资源。 - 当指定启用多个线程时,线程启动后需要让线程各自等待,直到整个请求应答过程结束
阅读全文
0 0
- HTTP服务器的设计与思考
- 对Java性能服务器的设计与思考
- 网络游戏服务器设计思考
- 数据库索引的设计与思考
- 职业设计的思考与反思
- 服务器底层网络框架设计的一些思考
- 服务器底层网络框架设计的一些思考
- 服务器底层网络框架设计的一些思考
- 一个比nginx速度更快的HTTP服务器de设计与实现
- 设计模式 原型模式与C++ & 设计模式的思考
- 重新思考ajax 与 http
- 服务器集群的思考
- 关于Web服务器与动态网页的一些思考
- 关于CI的服务器与最佳实践,这里有一些思考
- Tomcat与HTTP服务器集成的原理
- 5 与HTTP协作的web服务器
- 与Http协作的Web服务器
- 图解HTTP第五章:与HTTP协作的Web服务器
- SSH之IDEA使用maven整合实现简易用户登录
- hdu5112-思维&水
- 【docker】docker run命令详解
- 电容电感充放电
- JS创建对象方法以及继承方法
- HTTP服务器的设计与思考
- ActiveMQ消息特性:通知消息(Advisory Message)
- Linux用户管理常用命令及示例
- Codeforces 816 -B. Karen and Coffee
- 手把手教你写Dockerfile, 附赠MongoDB和Nginx Dockerfile编写实例
- vim代码块对齐
- io(二)
- 多线程(5)同步
- 第一行代码 第二章 Activity的启动模式