一个http请求从用户输入网址开始到结束都发生了什么

一个http请求从用户输入网址开始到结束都发生了什么

 
一、一个http请求从开始到Django后台,到结束发生了什么
  1. 通过用户输入的域名解析出IP地址
  2. TCP/IP 三次握手
  3. 进入nginx---->django
    4.TCP/IP 四次挥手
1.1 通过用户输入的域名解析出IP地址
  • 第一步:
    客户端先检查本地是否有对应的IP地址缓存,找到就返回,没有找到就向上一级DNS服务器发送请求,直到找到或根节点。
    顺序为: 浏览器缓存-->系统缓存-->路由器缓存-->ISP DNS缓存-->从根域名服务区递归搜索
1.2 TCP/IP 三次握手
  1. client先发送一个带synchronize (SYN)标志的数据包给server,在设定的超时时间内等待server的回复,
  2. server 端接收到该数据包后,返回一个带 SYN/ACK (acknowledge charactor) 标志的数据包以表示传达确认信息。
  3. client 收到后再发送一个带有ACK标识的数据包给server表示连接(握手)成功
    一个http请求从用户输入网址开始到结束都发生了什么

连接成功后client给web服务器发送一个HTTP请求

1.3 请求进入nginx--->django

HTTP请求进入nginx:
反向代理:指服务提供方出一个代理,客户请求只和代理打交道
如nginx代理:http请求进入nginx处理后,找到对应的业务处理服务器。静态请求如CSS,JS,图片等,就转向静态服务器,如果是动态请求,就把请求分发到Web应用服务器。
不管是静态还是动态都有多台服务器,Nginx按照一定策略把请求向业务服务器进行分配,防止压力集中到一台服务器上,
这就是所说的负载均衡
nginx还可配置一些防爬虫、设置超时时间,文件大小允许等。如爬虫>监控某一Ip如果在短时间类发起大量请求如1s内50次,就将其标记为黑名单。

HTTP分配到Django
一个请求在django的生命周期:
首先请求来到url路由系统,通过查询本地url对应服务,将请求转向相应的业务逻辑函数或类。业务逻辑在处理相应的数据库、static、templates/html后将处理好的模版字符串返回,然后结果返回客户端,经过浏览器相应渲染呈现在屏幕。
一个http请求从用户输入网址开始到结束都发生了什么

1.4 四次挥手
 
博客来源:https://www.cnblogs.com/shiqi17/p/9589267.html
上一篇:​adb server is out of date. killing解决方法


下一篇:Hadoop权限管理