深入web请求过程

B/S概述:

带来了两方面的好处:客户端使用统一的浏览器;服务端基于统一的HTTP,采用无状态,短链接的通信方式;

当输入一个网址时,首先通过DNS将其解析成一个IP地址,然后根据这个IP地址找到对应的服务器,并且向这个服务器发一个get请求,然后由这个服务器决定返回默认的数据资源给访问的用户。

然而其中还有很多复杂的业务逻辑:

服务器可能有多台,到底选择那一台来处理请求,这需要一个负载均衡设备来平均分配所有用户的请求

还有存储的数据是存储在分布式缓存系统中还是一个静态文件中,或者是数据库中

当数据返回到浏览器时,浏览器解析资源还会发现一些静态资源,这又会引发另外的HTTP请求

但是不管网络架构如何变化,都必须遵守一些原则:所有资源统一用一个URL表示,必须基于http,数据展示必须在浏览器总进行

如何不通过浏览器发起一个请求:httpclient还有Linux中的curl命令

HTTP解析:

header:请求头和响应头和状态码,查看header·可以使用谷歌,火狐自带的调试工具,或者HTTPWatch工具

 浏览器缓存机制:当我们浏览一个页面发现有异常时,我们通常考虑的是,是不是浏览器做了缓存。所以一般做法是Ctrl+F5重新请求一下这个页面。这是会在http header中增加一些新的header,告诉我们需要获取最新的数据而不是缓存。比如请求头:Pragma:no-cache和Cache-Control:no-cache,他们的作用是一样的,但是后者的优先级较高

原文地址:https://www.cnblogs.com/QianYue111/p/12952934.html