网站访问流程及原理分析
前言:
(1).当用户在浏览器中输入www.baidu.com.
(2).点击回车.
(3).网页跳转到百度首页.
说到这个步骤. 大部分人都会. 但是这后面究竟经历了哪些流程呢?
尝试思考一下.你会有正确的答案吗?
正文:
1.浏览器输入www.baidu.com
2. 首先在浏览器DNS缓存中查询有没有对应的IP和端口.
3. 接着在本地HOST缓存查询DNS信息.
4. 进入路由器中查询DNS缓存信息.
5.如果缓存中都没有找到对应的DNS信息。那么接着本地首选DNS服务器(电信.联通)查询DNS缓存信息.
6.进入根域名服务器查询DNS缓存信息.全球只有13台
7.接着进入顶级域名查询DNS缓存信息。如.com, .cn, .net等等。
8.进入主域名查询DNS缓存. 如baidu.com
9.查询到DNS信息后。通过IP和端口去访问对应的资源(tcp连接3次握手)
第一次握手建立连接.第二次握手发送http get or post 报文.第三次握手 浏览器获取http响应报文.
10.服务端收到浏览器的访问请求.首先判断访问是否合法.接受或者拒绝该访问.
11.接受访问.读取http报文并且解析.
12.如果是静态资源.则去加载对应的html.css.img.访问服务端中对应的资源。
如果是动态资源.通过cgi或者fastcgi协议。启动php-fpm程序. php-fpm加载配置文件php.ini。
然后php-fpm对php代码进行处理. 最后按cgi或者fastcgi格式返回处理后的结果.
13.最后web服务器返回http报文信息.
补充:
DNS劫持通常有2种
(1).电脑端的DNS劫持
怎么查看电脑端DNS是否正常呢?
如果设置了固定IP.则看固定IP是否正确.
如果设置了自动获取.则确定是否为自动获取.
(2).路由器端的DNS劫持
网站访问流程及原理分析相关推荐
- 支付宝app支付java后台流程、原理分析(含nei wang chuan tou)
java版支付宝app支付流程及原理分析 本实例是基于springmvc框架编写 一.流程步骤 1.执行流程 当手机端app(就是你公司开发的app) ...
- 静态网站与动态网站访问流程
静态网站与动态网站访问流程 静态网站 动态网站
- ssm框架搭建流程及原理分析
这几天自己想搭建个ssm框架玩一下,有些东西长时间不玩都给忘了,所以自己把整个流程整理了一下,只要跟着步骤,就能顺利完成ssm框架的搭建. 一.搭建步骤: 1.整理jar包 2.对于一个we ...
- 【深入浅出Spring原理及实战】「技术原理」Spring Security的核心功能和加载运行流程的原理分析
SpringSecurity的架构总览 Spring Security的简介说明 Spring Security对认证.授权和常见漏洞保护提供了全方位支持.使用的版本为:Spring Security ...
- OpenStack创建网络和虚拟机、dhcp设备、虚拟路由器、虚拟机访问外网原理分析
创建网络和虚拟机流程: 1.创建网络和子网 背后发生了什么: Neutron让控制节点上针对此子网的dhcp(虚拟设备)启动,用于给该子网下的实例分配ip 2.生成虚拟机 背后发生了什么: 用户通过G ...
- Camera2 APP Flash 打闪流程及原理分析
Camera Flash打闪流程梳理 Flash打闪的条件有两个一个是AE_Mode 一个是Flash Mode两个参数决定Flash打闪的过程. Flash mode有四个状态 AUTO OFF O ...
- DNS与网站访问流程
1:dns与网址url简介 DNS是域名系统(DomainNameSystem)的缩写,域名系统是一中庞大而复杂的系统,但我们这里讲解重心并不是这个系统,而是指本地电脑dns是什么 讲到dns,我们就 ...
- 阿江网站访问统计系统设计构思分析
站点访问统计系统设计构思.txt 1.记录浏览器类型版本号.比如Windows NT 5.1 2.记录客户端操作系统,屏幕宽度,分辨率等.比如使用screen对象检测 3.记录访问时间等.比如年.月. ...
- 算法系列之赫夫曼树的精解【构造流程及原理分析】
赫夫曼树又称为最优树.最优二叉树 赫夫曼树百度百科 https://baike.baidu.com/item/%E5%93%88%E5%A4%AB%E6%9B%BC%E6%A0%91/2305769? ...
最新文章
- 报名 | 美团是怎样给你推荐外卖的?美团大脑知识图谱详解
- java concurrency_Java Concurrency - Lock
- pythonweb开发需要学哪些知识,python web需要了解哪些
- 海量信息存储基地落户滨海高新区
- Python 03 学习内容整理
- Linux 安装Opencv3.2
- import org.apache.commons.codec.digest.DigestUtils; 未导入
- 谈谈女友卸妆后的感受?
- 博文视点大讲堂36期——让Oracle跑得更快 成功举办
- mysql 5.6.34 二进制下载_mysql 5.6.34 二进制
- HTTP Error 500.19 – Internal Server Error – 0x80070021 (IIS 8.5)
- java中如何播放背景mp3音乐_java播放背景音乐
- ubuntu 22.04 网易云音乐安装
- lg-1 x 怎么算_【言情】魔鬼的体温 by 藤萝为枝 敏感自卑男主x治愈天使女主 我凭美食成为国家宝藏by 十尾兔...
- 南京大学计算机科学专硕培养方案,计算机科学与技术专业硕士研究生培养方案(2014版)...
- L1-009 N个数求和 (20 分)(C语言)(测试点3和测试点5)
- 使用GBase企业管理器执行 select count(1) into @c from t1;报错解决方案
- 彻底关闭windows defender,Antimalware Service Executable
- Java实例——Java方法
- Intellij搭建spark开发环境
热门文章
- 最短哈密顿路matlab,最短路径系列【最短路径、哈密顿路等】
- 服务器的iso文件,裸金属服务器注册ISO文件
- [MongoDB] 运维相关操作记录
- windows防火墙
- ubuntu Anaconda安装gi模块 ValueError: Namespace Gtk not available
- java 判断对象的属性是否为空,如何判断一个对象里的属性是否都为空的
- Prometheus技术系列文章——prometheus调研总结
- SAP Archiving (归档)
- C++ SuperLU 混合编程
- 三菱FX5U系列PLC内置高速计数器的使用方法示例