Web服务器运行过程

一、建立连接

Web服务器建立连接的过程一般遵循TCP/IP的三次握手。

通过这三次握手,客户端和服务器知道了相互通信的对象,然后就可以进行相关数据的传输。

对于本机来说,要确定与本机的那个端口进行通信。

二、接收数据

客户端向服务器发送包含请求内容的报文,服务器受到报文后。按照http协议对请求包进行解包,分析客户端的意图。

Cookie和session相关校验和检测会发生在刚接受数据的时候,服务器首先根据客户端传来的sessionid找到本地保存的session,然后比对本地session中的cookie和传来的cookie值是否一致,如果一致,进入数据处理环节,如果不一致,则进入有关网络安全的相关处理。

在这一环节中还会有对http包头中各种参数的验证和校验过程,比如对http请求来源进行校验,对请求内容进行校验,对用户权限进行校验,对用户协议进行校验等等的内容。

在这一过程中还要对用户数据进行相关的解码。

三、处理数据

  1. 首先对用户申请的数据进行校验,看用户申请的数据的路径是否存在,是否有越权行为,如果一切正常,就获取用户所请求的数据,并放入缓冲区。
  2. 遇到请求页面的情况,像Apache服务器一样的服务器会先从内存中获取对应页面的源代码并交给本地的代码解释器,代码解释器会将源代码解析为一个网页界面,最后放入缓冲区等待发送;但是像tomcat这类服务器在拿到相关源码之后,会调用本地的一些相关代码对页面再进行修饰,最后才会存入缓冲区。
  3. 还有一种方式是直接将页面的源代码发送到客户端,由客户端对页面进行渲染和处理,这种情况下只需要读取相关文件。
  4. 可能会修改session中的内容。
  5. 还会对一些指定的数据进行加密处理。

四、发送数据

服务器首先确认客户端仍然在线且可写,然后,

  1. 构造http头。

在http头中加入cookie和sessionid,并按照编写好的代码修改服务器端的cookie和session,确定响应头中的内容,构造响应头。

  1. 从缓冲区中读取已经处理好的数据。

将响应头与响应数据合在一起构成响应数据包。

  1. 发送响应数据包
  • 其他操作
  1. 在数据传输完成之后,客户端和服务器会确定是否关闭连接。
  2. 在数据传输过程中,客户端和服务器会不间断的发送ack报文来确定是否收到数据。
  • 综合过程

网页的访问是一个复杂的过程,访问网页的一个细致的过程大概如下:

  1. 浏览器首先访问web网站,这时浏览器还不知道要访问哪些资源,只是根据我们输入的一个简单的网页URL去向网页发起请求。
  2. 服务器收到请求后,若请求合法,则将请求网页的源代码发送回客户端浏览器,同时服务器也可能会将一些与页面相关的资源一起发送回客户端。
  3. 浏览器收到网页源代码和资源后,发现源代码中还有很多资源没有获得(如图片,视频等等),于是根据网站源代码中所写的资源的位置,再向网站发请求这些资源。
  4. 网站再返回这些请求所请求的资源,如此循环,知道浏览器获取全部资源。

 五、缓存机制

  1. 客户端缓存

(1)概述

随着技术的发展,一个web界面所包含的信息越来越多,如果每次请求都将内容完全返回对服务器会是一种非常巨大的负担,因此,诞生了浏览器端的缓存机制。

(2)过程

当客户端第一次向服务端请求数据时,服务器返回一些数据的时候就会在返回头中包含cache-control 字段,该字段确定了客户端可以缓存这个资源多久,但在规定时间内再次访问这个资源时,客户端就不会再次访问,会直接使用缓存的资源。

  1. 服务器缓存
  1. 概述

仅仅只有客户端缓存还不能完全解决性能问题,为了减小大量用户访问资源的平均时间,产生了服务器缓存。

  1. 过程

服务器会将经常被访问的资源直接放进服务器本身的缓存中,一旦用户访问这个资源,就直接从缓存中读取数据并返回,省去了从内存中读取所花费的时间。这类资源一般值网站的首页,热搜的信息。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值