博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
服务器解析请求的基本原理
阅读量:5102 次
发布时间:2019-06-13

本文共 732 字,大约阅读时间需要 2 分钟。

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

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

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

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

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

 

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

转载于:https://www.cnblogs.com/shijinglu2018/p/10046332.html

你可能感兴趣的文章
matlab knn 离群点检测,基于KNN离群点检测和随机森林的多层入侵检测方法
查看>>
relatekw.php,relatekw.php
查看>>
php面向过程删除数据库数据类型,(进阶篇)PHP连接数据库,实现最基本的增删改查(面向过程)...
查看>>
php表很长会坏,PHP – 多个uasort函数会破坏排序
查看>>
oracle 删除指定分区表,oracle 分区表定期删除分区
查看>>
oracle中创建脚本文件怎么打开,创建脚本文件 (OracleToSQL)
查看>>
advisors oracle,Oracle Support Lifecycle Advisors
查看>>
oracle rman定时备份,RMAN定时全备份脚本
查看>>
oracle删除添加数据文件,Oracle教程 误添加数据文件删除方法
查看>>
linux文件取消只读fstab,Linux 去除fstab文件只读属性
查看>>
linux内核时钟源,深入分析Linux内核源码-系统时钟
查看>>
linux svn编译安装,Linux下编译安装SVN
查看>>
Linux服务器cpu性能模式,linux cpu开启性能模式
查看>>
linux用户空间寄存器,除了写一个驱动,还有什么办法在linux用户空间访问寄存器?...
查看>>
Linux恐慌信息详解,调试linux内核恐慌
查看>>
linux c替换字符,Linux C字符串替换函数实例详解
查看>>
tesla p100 linux,NVIDIA Tesla P100计算卡性能首测:震撼地球!
查看>>
C语言中 关键字static的作用有哪些,快速了解C语言静态关键字static的作用
查看>>
c语言动态输入字符数组的长度,【分享】C语言动态长度字符串
查看>>
c语言编程技术分享,技术分享:C语言编程
查看>>