一.文本对话--从请求到响应 我们在浏览器中输入一个 URL,回车之后便会在浏览器中观察到页面内容.实际上这个过程是: (1)浏览器向网站所在的服务器发送了一个 Request(请求) (2)网站服务器接收到这个Request之后进行处理和解析 (3)然后返回对应的一个Response(响应)给浏览器,Response里面就包含了页面的源代码等内容 (4)浏览器再对其进行解析便将网页呈现了出来. 简单说,这个通信的过程是基于TCP/IP通信协议族规范上实现的,完成从客户端到服务器端等一系列信息交…
  在浏览器地址栏输入URL 浏览器查看缓存,如果请求资源在缓存中并且新鲜,跳转到转码步骤 HTTP1.0提供Expires,值为一个绝对时间表示缓存新鲜日期 HTTP1.1增加了Cache-Control: max-age=,值为以秒为单位的最大新鲜时间 如果资源未缓存,发起新请求 如果已缓存,检验是否足够新鲜,足够新鲜直接提供给客户端,否则与服务器进行验证. 检验新鲜通常有两个HTTP头进行控制Expires和Cache-Control: 浏览器解析URL获取协议,主机,端口,path 浏览…
在浏览器地址栏输入URL 浏览器查看缓存,如果请求资源在缓存中并且新鲜,跳转到转码步骤 如果资源未缓存,发起新请求 如果已缓存,检验是否足够新鲜,足够新鲜直接提供给客户端,否则与服务器进行验证. 检验新鲜通常有两个HTTP头进行控制Expires和Cache-Control: HTTP1.0提供Expires,值为一个绝对时间表示缓存新鲜日期 HTTP1.1增加了Cache-Control: max-age=,值为以秒为单位的最大新鲜时间 浏览器解析URL获取协议,主机,端口,path 浏览器组…
第一步,解析域名,找到主机IP (1)浏览器会缓存DNS一段时间,一般2-30分钟不等.如果有缓存,直接返回IP,否则下一步. (2)缓存中无法找到IP,浏览器会进行一个系统调用,查询hosts文件.如果找到,直接返回IP,否则下一步.(在计算机本地目录etc下有一个hosts文件,hosts文件中保存有域名与IP的对应解析,通常也可以修改hosts科学上网或破解软件.) (3)进行了(1)(2)本地查询无果,只能借助于网络.路由器一般都会有自己的DNS缓存,ISP服务商DNS缓存,这时一般都能…
输入网址,首先在书签或者历史记录里面去搜索相关的网址推荐给你 浏览器查找域名的IP的地址(在hosts文件有没有对应IP  ->  浏览器发出一个DNS请求到本地DNS服务器,本地服务器一般是网络接入服务商提供,如电信.移动  ->  本地服务器查询缓存记录,有则直接返回结果,没有则向DNS根服务器查询,此过程递归  ->  DNS根服务器返回域服务器给本地服务器  ->  本地服务器向域服务器发送请求,域服务器返回域名和解析服务器地址  ->  本地服务器向域名的解析服务器…
-来自<图解HTTP> 最近在进行前端面试方面的一些准备,看了网上许多相关的文章,发现有一个问题始终绕不开: 在浏览器中输入URL到整个页面显示在用户面前时这个过程中到底发生了什么.仔细思考这个问题,发现确实很深,这个过程涉及到的东西很多.这个问题的回答真的能够很好的考验一个web工程师的水平,于是我自问自答一番. 总体来说分为以下几个过程: DNS解析 TCP连接 发送HTTP请求 服务器处理请求并返回HTTP报文 浏览器解析渲染页面 连接结束 具体过程 DNS解析 DNS解析的过程就是寻找…
备注: 因为文章太长,所以将它分为三部分,本文是第三部分. 第一部分:深入浅出经典面试题:从浏览器中输入URL到页面加载发生了什么 - Part 1 第二部分:深入浅出经典面试题:从浏览器中输入URL到页面加载发生了什么 - Part 2 第三部分:深入浅出经典面试题:从浏览器中输入URL到页面加载发生了什么 - Part 3 HTTP/HTTPS请求和响应 前面TCP连接已经建立好了,意味着桥已经搭好了,下一步就该传输HTTP消息了.因为HTTP我们都很熟悉,很常见,也不是那么底层,理解起来轻…
当在浏览器地址栏输入网址,如:www.baidu.com后浏览器是怎么把最终的页面呈现出来的呢?这个过程可以大致分为两个部分:网络通信和页面渲染. 一.网络通信 互联网内各网络设备间的通信都遵循TCP/IP协议,利用TCP/IP协议族进行网络通信时,会通过分层顺序与对方进行通信.分层由高到低分别为:应用层.传输层.网络层.数据链路层.发送端从应用层往下走,接收端从数据链路层网上走.如图所示: 1. 在浏览器中输入url 用户输入url,例如http://www.baidu.com.其中http为…
转:https://www.cnblogs.com/confach/p/10050013.html 背景 “从浏览器中输入URL到页面加载的发生了什么“,这是一道经典的面试题,涉及到的知识面非常多,但作为一个自认为对网络知识掌握的比较好的老码农来说,回答这个问题自然不在话下.如果这道题目如果在面试出现,对我来说就是送分题啊.尽管如此,我还是愿意花一些时间根据我自己的理解回答一下这个题目,看我自己到底掌握的有多深,同时也把自己的知识梳理一下. 这让我想起另外一件往事,这道题有点类似于“在手机上浏览…
[ASP.NET Core]EF Core - “影子属性”   有朋友说老周近来博客更新较慢,确实有些慢,因为有些 bug 要研究,另外就是老周把部分内容转到直播上面,所以写博客的内容减少了一点. 老周觉得,视频直播可能会好一些,虽然我的水平一般,不过直播时,老周可以现场演示,可能会比看博客效果要好(因为现场演示,有时候会有失误,没办法,水平有限).还有一个,就是.NET 的资料其实很多,毕竟也发展了十几年了,有些东西如果别人都写过了,那我也不好意思重复了..NET Core 尽管是跨平台版本…