zoukankan      html  css  js  c++  java
  • 服务器解析请求的基本原理

    服务器解析请求的基本原理:

          1)用户在客户端发送请求(如点击一个链接或在地址栏输入一个地址然后敲回车)

          2)服务器端此时开始解析请求对象(分别为请求行、消息头、信息正文),这里用到了servlet的底层原理,其中HttpRequest内容包括请求方式、路径、协议和请求路径、查询方式、查询参数、消息头(这里用map表示和处理)等消息等需要解析。

          3)创建响应对象,然后判断是否请求业务。 如果是,则根据请求获取相应的Servlet对象,用反射机制加载并实例化,随后调用service方法处理业务,并根据业务处理的结果设置response对象来处理客户端,最后将相应内容刷新,并发送给客户端,与此同时,把相关的状态行、响应头、响应正文发送到HttpReposne; 如果不是,则判断路径,该资源文件是否存在,如果不存在,则设置状态码为404,并设置响应实体为404.html页面,最后将相应内容刷新,并发送给客户端,与此同时,把相关的状态行、响应头、响应正文发送到HttpReposne;如果该资源路径存在,则设置响应实体为请求的实际文件,最后将相应内容刷新,并发送给客户端,与此同时,把相关的状态行、响应头、响应正文发送到HttpReposne;。

          4 )待解析完毕后,会在HttpResponse中生成相应的状态码、消息头、响应实体,与此同时,将响应的内容打包发送给客户端。

     

         说明:这是大致原理,其实还有很多细节要补充,而且,这里还存在一个刷新问题,所以,如果纠结于细节的话,还要深究HTTP协议,另外,对于具体的解析内容也可以抓包看看具体信息。

    成年人的世界没有那么多的童话,也没有那么多的逆袭。
  • 相关阅读:
    词法定界
    Lua 多维表的遍历中的赋值
    mac虚拟机parallels 无法启动 "Windows 7" 虚拟机
    MAC下Android的Eclipse开发环境的搭建
    Lua 的函数库 01
    mac 安装lua并配置Subline Text2 的lua开发环境
    Sublime Text2 注册码 汉化 配置lua开发环境
    js 月历 时间函数 月份第一天 星期的判断
    android 判断app是否处于前台
    android 更新下载apk
  • 原文地址:https://www.cnblogs.com/shijinglu2018/p/10046332.html
Copyright © 2011-2022 走看看