zoukankan      html  css  js  c++  java
  • 网站访问流程

    1. 解析出主机名和端口号

    2. 查询浏览器或者操作系统的DNS缓存,如果命中缓存,则使用缓存的IP地址,否则,使用DNS解析出IP地址

    • 在DNS协议中,先向本地DNS服务器求助(一般是路由器),希望从本地DNS服务器那里得到主机名对应的IP,得到就好,得不到还得向更高层次的DNS服务器求助,直到解析出主机名对应的IP。

    3. 使用IP, ARP, RARP, OSPF协议获取目标IP的MAC地址(唯一标示机器的地址),知道MAC地址后才能进行TCP连接

    4. 进行TCP的3次握手

    • 在TCP协议中,建立TCP需要与目标服务器握手三次,你先告诉服务器你要给服务器发东西(将IP分组的SYN位设置为1),服务器应答你并告诉你它也要给你发东西(将IP分组的SYN、ACK位设置为1),然后你应答服务器(将IP分组的ACK位设置为1),总共来回了3次,称为3次握手。(可使用wireshark抓包分析)

    5. 建立了TCP连接后,如果使用HTTPS,则需要进行SSL握手,沟通加密参数(如,SSL版本)以及交换秘钥,握手完成后,报文会在发送给TCP之前在SSL层进行加密。

    6. 建立了TCP连接便可以发送HTTP请求了,HTTP请求通过TCP协议发到Server端

    7. Server端一般会有Nginx之类的WebServer,在收到HTTP请求后,查看HTTP请求Header的Host字段判断是请求的哪个web app

    • 如果有多个app的话),然后nginx会做一些验证或者黑名单拦截之类的操作,然后直接处理静态资源请求,其他请求分配给后端worker进程(由WSGI服务器创建,比如Gunicorn,Gunicorn使用pre-fork模式提前开启多个web app worker进程用来处理请求),Gunicorn将HTTP请求转为WSGI请求,由web框架如Django, Flask处理请求,返回响应,返回结果使用WSGI协议处理后返回给Nginx,Nginx将结果通过HTTP响应返回给浏览器,浏览器渲染响应。
  • 相关阅读:
    Python性能分析指南
    centos加入启动服务
    北京户口
    北京户口
    【汽车进口税】 关于汽车进口税计算你知道多少-汽车保险资讯-阳光车险官方网站
    在北京公司要多长时间才可以申请摇车牌号
    Kivy: Crossplatform Framework for NUI
    说说设计模式~大话目录(Design Pattern)
    说说设计模式~策略模式(Strategy)
    说说设计模式~装饰器模式(Decorator)
  • 原文地址:https://www.cnblogs.com/Ycqifei/p/14806759.html
Copyright © 2011-2022 走看看