• 服务器如何处理http请求


    1.需求

    了解服务端如何处理http请求,了解基本的处理流程

    2.实战

    处理http请求分为7个步骤

    2.1 Tcp连接

    建立一条tcp链接,(若之前不存在持久链接keep-alive),把客户端的ip和port,服务端的ip和port数据放到web服务器连接表中。服务器随时监听链接表中的链接,看有没有数据变化

    2.2 接收http请求

    一旦我们发送http请求了,这条tcp链接就开始工作了。因为web服务器链接表中有许多链接需要被处理,处理的方式有单线程,多线程这些(这些涉及操作系统的知识)。

    2.3 处理http请求

    处理的过程大致是把请求的信息解析出来,如下图

    2.4 访问资源

    访问资源可以是访问静态资源,这个就直接根据url地址去服务器里找就好了。

    访问动态资源的话要经过一个叫cgi的东西,再用服务端脚本处理,再返回给前端。如下图所示

    2.5 构建响应

    要是找到资源,则构建响应信息,包括响应的对象类型,长度,状态码。

    另一个情况是重定向响应,就是直接返回一个重定向,客户端看到之后,立刻再向重定向的地址发起请求。重定向的响应的状态码一般是3xx。

    2.6 发送响应

    把构建的响应发送给客户端

    2.7 记录日志

    服务端对这个请求响应过程进行记录。(另外专门再讲)

    3.总结

    以上是服务端处理http请求的大致过程。能让大家有个大致轮廓,当然里面有很多细节的知识没讲到,要另外查询资料并学习。

    参考资料:http权威指南

    https://www.cnblogs.com/norm/p/6189596.html

  • 相关阅读:
    Windows Php Apache Phpstorm VS Code
    cygwin学习
    Linux链表理解
    gcc和arm-linux-gcc默认头文件库搜索路径
    测试DOS命令
    字符二维数组char[][]与char**(转)
    浅谈 C++ 中的 new/delete 和 new[]/delete[] (转)
    Linux抢占式调度简介(转)
    USB中的端点详细了解(转)
    QT窗口组件的父子关系
  • 原文地址:https://www.cnblogs.com/feng9exe/p/8041755.html
Copyright © 2020-2023  润新知