• Web服务器处理请求过程浅谈


         晚上读到网络这本书的最后一个章节,描写有关Web服务器如何工作的内容,产生一些想法,遂加以记录。

         Web服务器整个接收客户端请求的过程,大致可以分为两个部分,第一个部分等待客户端连接,以及第二个部分处理与客户端的实际连接。具体的内容大致描述一下,首先OS读取Web服务器程序配置文件进行初始化配置,然后第一个等待连接部分,会调用OS里面的Socket库里面创建套接字的方法,通过描述符来标识套接字在内存中的具体位置,此时描述符1是Listen方法的返回值,协议栈再调用accept方法,参数是描述符1,返回描述符2。当有外部请求进入,调用第二个处理部分,与客户端的通信模块,这个类似于在内存堆(heap)中new出来一个新的通信模块对象,用来专门处理这个客户端的通信具体内容。然后协议栈程序继续循环到accept等待下一个请求状态。此时需说明一下, 当等待连接模块在处理第一个请求的时候,这个时候的等待连接模块处于一种暂挂的状态,不允许外部请求访问。

        上面描述的过程,可以类比为会所大堂的迎宾处,迎宾小姐先是在门店前等待,当客人一个个排好队的时候,先处理第一位客人,等这位客人一切手续办齐,号码牌登记都弄好,可以看作是套接字已经建好,这个时候前台的台账也会记录这位客人的详细资料,同样的服务器OS内核里面也有一张表,专门用来记录套接字的。办理妥当之后,后续的事情就交由服务工作者来具体的对客户进行相应的服务。而迎宾小姐继续等待下一位客人的到来。

       其实细想起来,当工作中碰到一些难以解决的问题时,这个时候最好脑洞开一下,想一想生活中的例子,然后联系系统的实际处理流程,没准能找到比较不错的解决方案呢。

      (PS:举例那一段纯属作者个人脑洞,帮助个人理解,如果想深层次探究具体的过程,建议还是老老实实看书为妙!)

    一位致力于成为一名信息化专业人士的前行者
  • 相关阅读:
    oracle增加字段,循环
    mybatis批量插入和更新
    oracle触发器
    Java中<? extends T>和<? super T>的理解
    函数式编程
    mybaitis
    操作word
    服务大厅流程
    jdk动态代理
    操作系统
  • 原文地址:https://www.cnblogs.com/clare09/p/12484019.html
Copyright © 2020-2023  润新知