一个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表示连接(握手)成功

连接成功后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后将处理好的模版字符串返回,然后结果返回客户端,经过浏览器相应渲染呈现在屏幕。


1.4 四次挥手
pass
原文地址:https://www.cnblogs.com/shiqi17/p/9589267.html