• 基于HTTP协议实现简易Web服务器


    c20056f6556d4f68a0f8e489c48c929d.webp

    文章目录

    简单了解浏览器和服务器之间通信的过程:

    了解http协议:

    HTTP 的请求报头结构

     HTTP 请求报文段示例:

    HTTP 的请求方法

    HTTP 的应答报头结构

     HTTP 常见的应答状态码:

    Web服务器的实现:

    ​编辑

    代码实现:

    前面的文章我们了解到基于tcp实现客户端服务器之间的通信,也是大家常说的C/S结构,C/S结构,即Client/Server(客户机/服务器)结构,是大家熟知的软件系统体系结构,通过将任务合理分配到Client端和Server端,降低了系统的通讯开销,可以充分利用两端硬件环境的优势。早期的软件系统多以此作为首选设计标准。(用的是ip,tcp/udp通信协议)

    而与之相对应的就是现代社会十分流行的B/S结构。(采用的是上层的http或者https通信协议)

    而B/S结构,即Browser/Server(浏览器/服务器)结构,是随着Internet技术的兴起,是对C/S结构的一种变化或者改进的结构。在这种结构下,用户界面完全通过WWW浏览器实现,一部分事务逻辑在前端实现,但是主要事务逻辑在服务器端实现,形成所谓3-tier结构。 

    b0d6833d743942e98fcda5b51e88e48e.png

    想必大家肯定做过使用Web服务器实现网页开发的项目吧,耳熟能详的WEB服务器如apache,tomcat等,今天我们要做的就是实现自己的Web服务器,这个服务器它接收到浏览器发送的请求报文,对请求报文进行解析,并发送应答报文给浏览器,浏览器解析内容呈现界面给用户。

    知道这些后,下面我将简单介绍一下http的一些内容,了解这些之后,我们就可以学习上节利用tcp协议取实现客户端服务器通信一样,这次利用http协议去实现一个自己的简易版的Web服务器~

    简单了解浏览器和服务器之间通信的过程:

    浏览器与 web 服务器在应用层通信使用的是 HTTP 协议(超文本传输协议),而 HTTP协议在传输层使用的是 TCP 协议。那么浏览器需要和 web 服务器三次握手建 立连接后,才可以发送 HTTP 请求报文,服务器收到请求报文后,向浏览器回复 HTTP 应答报文。

    浏览器向服务器发起连接前,需要得到服务器的 IP 及端口。用户在浏览器中通常只 输入网址(网站域名) ,浏览器会通过 DNS 服务查询获取到服务器的 IP 地址。 对于 端口来讲,使用 HTTP 协议的程序一般默认使用 80 端口。

    浏览器服务器建立连接后,如果两次以上的请求复用同一个 TCP 连接,则称之为长 连接。如果浏览器发送一次请求报文,服务器回复一次应答就断开连接,下次交互再 重新进行三次握手建立连接,那么就被称作短连接。使用长连接显然是更好一些,可 以减少网络中的同步报文,也使得服务器的响应速度变快。

    ab05749172894035bdd5ce2321ec9e42.png

    了解http协议:

    HTTP 是超文本传输协议

    HTTP的名字「超文本协议传输」,它可以拆成三个部分:

    • 超文本
    • 传输
    • 协议
  • 相关阅读:
    根据模板和git commit自动生成日·周·月·季报
    多系统对接的适配与包装模式应用
    16-CSS3
    【好玩】如何在github主页放一条贪吃蛇
    CO41创建生产订单维护增强字段
    代码随想录三刷day46
    初步了解ES7-ES12
    Web 开发相关概念
    element-ui中表格树类型数据的显示
    算法小白的心得笔记:分清楚执行程序和动态链接库的编译方式。
  • 原文地址:https://blog.csdn.net/weixin_51609435/article/details/127136942