精华内容
下载资源
问答
  • 1 客户端浏览器获取用户在地址栏输入的域名。客户端浏览器将域名发送给DNS域名系统,请求解析。 2 DNS解析域名得到相应的IP,返回给客户端浏览器。 3 客户端浏览器根据IP向服务器发起TCP三次握手,建立TCP连接。 4 ...
    • 1 客户端浏览器获取用户在地址栏输入的域名。客户端浏览器将域名发送给DNS域名系统,请求解析。
    • 2 DNS解析域名得到相应的IP,返回给客户端浏览器。
    • 3 客户端浏览器根据IP向服务器发起TCP三次握手,建立TCP连接。
    • 4 客户端浏览器向服务器发送HTTP请求,请求网址首页。
    • 5 服务器通过HTTP响应向客户端浏览器返回网址首页文件。
    • 6 释放TCP连接,四次挥手。
    • 7 客户端浏览器解析HTML文件,根据文件内容获取CSS、JS等资源文件,将页面渲染展示给用户。
       
    展开全文
  • ③浏览器没有DNS缓存,则查找本地客户端hosts文件有无对应的ip地址。 ④hosts无,则查找本地DNS服务器(运营商提供的DNS服务器)有无对应的DNS缓存。 ⑤若本地DNS没有DNS缓存,则向根服务器查询,进行递归查找...

    一、基本流程:

    ①查询ip地址

    ②建立tcp连接,接入服务器

    ③浏览器发起http请求

    ④服务器后台操作并做出http响应

    ⑤网页的解析与渲染

     

    二、详细步骤如下:

    1、查询ip地址

    ①浏览器解析出url中的域名。

    ②查询浏览器的DNS缓存。

    ③浏览器中没有DNS缓存,则查找本地客户端hosts文件有无对应的ip地址。

    ④hosts中无,则查找本地DNS服务器(运营商提供的DNS服务器)有无对应的DNS缓存。

    ⑤若本地DNS没有DNS缓存,则向根服务器查询,进行递归查找。

    ⑥递归查找从顶级域名开始(如.com),一步步缩小范围,最终客户端取得ip地址。

     

    2、tcp连接与http连接

    ①http协议建立在tcp协议之上,http请求前,需先进行tcp连接,形成客户端到服务器的稳定的通道。俗称TCP的三次握手。

    ②tcp连接完成后,http请求开始,请求有多种方式,常见的有get,post等。

    ③http请求包含请求头,也可能包含请求体两部分,请求头中包含我们希望对请求文件的操作的信息,请求体中包含传递给后台的参数。

    ④服务器收到http请求后,后台开始工作,如负载平衡,跨域等,这里就是后端的工作了。

    ⑤文件处理完毕,生成响应数据包,响应也包含两部分,响应头和相应体,响应体就是我们所请求的文件。

    ⑥经过网络传输,文件被下载到本地客户端,客户端开始加载。

     

    3、html渲染

    ①客户端浏览器加载了html文件后,由上到下解析html为DOM树(DOM Tree)。

    ②遇到css文件,css中的url发起http请求。

    ③这是第二次http请求,由于http1.1协议增加了Connection: keep-alive声明,故tcp连接不会关闭,可以复用。

    ④http连接是无状态连接,客户端与服务器端需要重新发起请求--响应。

    在请求css的过程中,解析器继续解析html,然后到了script标签。

    ⑤由于script可能会改变DOM结构,故解析器停止生成DOM树,解析器被js阻塞,等待js文件发起http请求,然后加载。这是第三次http请求。js执行完成后解析器继续解析。

    ⑥由于css文件可能会影响js文件的执行结果,因此需等css文件加载完成后再执行。

    ⑦浏览器收到css文件后,开始解析css文件为CSSOM树(CSS Rule Tree)。

    ⑧CSSOM树生成后,DOM Tree与CSS Rule Tree结合生成渲染树(Render Tree)。

    ⑨Render Tree会被css文件阻塞,渲染树生成后,先布局,绘制渲染树中节点的属性(位置,宽度,大小等),然后渲染,页面就会呈现信息。

    ⑩继续边解析边渲染,遇到了另一个js文件,js文件执行后改变了DOM树,渲染树从被改变的dom开始再次渲染。

    ⑪继续向下渲染,碰到一个img标签,浏览器发起http请求,不会等待img加载完成,继续向下渲染,之后再重新渲染此部分。

    ⑫DOM树遇到html结束标签,停止解析,进而渲染结束。

     

    从此可以得出网站的一些优化的方法:

    ①减少DNS查询:将服务器域名的ip信息加入本地host文件。

    ②减少http请求数量,对于图片使用雪碧图,对于html文件和css文件,js文件分别进行合并操作。

    ③减少下载时间:压缩图片,使用压缩应用压缩文档中的空格,删除文件多余的语句和注释,创造自己的js精简库和精简框架,使用本地浏览器缓存。

    ④提前渲染开始时间:将css链接放在html头部。

    ⑤减轻解析器的阻塞:将js链接放在body尾部。

     

    展开全文
  • 1. 域名解析 2. 发起TCP的三次握手 3. 建立起TCP连接后发起http请求 4. 服务器响应http请求...5. 浏览器解析html代码,并请求html代码的资源(css JavaScript 图片) 6. 浏览器对页面进行渲染呈现 更多请参考。 ...

    1. 域名解析
    2. 发起TCP的三次握手
    3. 建立起TCP连接后发起http请求
    4. 服务器响应http请求,浏览器得到html代码
    5. 浏览器解析html代码,并请求html代码中的资源(css JavaScript 图片)
    6. 浏览器对页面进行渲染呈现

    更多请参考

    展开全文
  • 对于Struts2、Spring3、Hibernate3集成使用的项目来说,对用户请求的控制...本文主要解决的就是①浏览器地址栏中直接输入url访问action的问题②过滤不想被拦截的方法例如对于如下链接:http://localhost:8080/absSys...

    对于Struts2、Spring3、Hibernate3集成使用的项目来说,对用户请求的控制是非常重要的,有些操作需要用户登录后才能执行。如果不做任何限制,则action可以直接在浏览器中输入action地址来执行相应的action.本文主要解决的就是

    ①浏览器地址栏中直接输入url访问action的问题

    ②过滤不想被拦截的方法

    例如对于如下链接:

    http://localhost:8080/absSys/delete.action?id=1

    直接在浏览器中提交上述地址,delete操作依然能执行!因此,必须对用户提交的请求进行拦截处理,如果用户没有登录,则跳转至登录页面。

    一、浏览器地址栏中直接输入url访问action的问题

    Struts2提供了拦截器,我们编写自己的拦截器的时候,只需要继承抽象类AbstractInterceptor,然后override intercept()方法就可以了。

    importjava.util.Map;

    importcom.opensymphony.xwork2.ActionContext;

    importcom.opensymphony.xwork2.ActionInvocation;

    importcom.opensymphony.xwork2.interceptor.AbstractInterceptor;

    publicclassLoginInterceptorextendsAbstractInterceptor {

    privatestaticfinallongserialVersionUID = 1L;

    publicvoiddestroy() {

    System.out.println("Destory");

    }

    publicvoidinit() {

    System.out.println("Init");

    }

    /**

    * @return result

    * */

    publicString intercept(ActionInvocation invocation)throwsException {

    System.out.println("action执行之前");

    String name = invocation.getInvocationContext().getName();

    System.out.println("请求方法:"+ name);

    ActionContext ac = invocation.getInvocationContext();

    Map session = ac.getSession();

    booleanallow = name.equals("infolist") || name.equals("xwgg")

    || name.equals("pxdt") || name.equals("noticethrid")

    || name.equals("gqpx") || name.equals("gp")

    || name.equals("np") || name.equals("sp")

    || name.equals("wypx") || name.equals("zgks")

    || name.equals("shpx") || name.equals("fwxz")

    || name.equals("noticesec") || name.equals("filedown");

    if(name.equals("login") || allow) {

    // 如果用户想登陆,或者执行的是allow方法则不拦截,使之通过

    // invocation.invoke()继续运行拦截器后续的处理

    returninvocation.invoke();

    } else{

    if(session.isEmpty() || session ==null) {

    // 如果session为空,则让用户登陆

    return"login";

    } else{

    String userId = session.get("userId").toString();

    if(userId ==null) {

    // session不为空,但是session中没有用户信息

    // 让用户登陆

    return"login";

    } else{

    // 用户已经登陆,登陆成功

    returninvocation.invoke();

    }

    }

    }

    }

    }

    二、过滤不想被拦截的方法

    在默认的配置中,是拦截所有的方法,对于部分不需要拦截的方法,则需要进行特殊的处理。

    LoginInterceptor类中:

    String name = invocation.getInvocationContext().getName();

    这个name是获取请求的方法,由于,我们对部分方法可能不需要拦截,因此让其直接继续执行后续的处理操作。这种常见的情况是,我们前台首页的查询action,我们是不需要拦截的。我们可以将不需要拦截的方法定义在allow中,也可以定义在配置文件中。本文为了方便起见,定义了一个boolean的变量allow。

    if(name.equals("login") || allow) {

    returninvocation.invoke();

    }

    invocation.invoke();是继续执行后续操作。

    三、修改Struts.xml配置文件,加入拦截器配置

    Struts.xml配置如下:

    /login.jsp

    /illegal.jsp

    这里需要说明一下的就是,对于这个拦截器的配置,可以加到需要拦截的package里面,也可以当度的放在一个package里面,然后其他的package继承我们的这个author package即可。

    ps: 同样也可以在指定的action中进行配置

    这个拦截器,但是这对每一个需要拦截的action都需要加入这个配置,对于大量的配置文件来说是比较繁琐的,因此我们只需定义一个package配置即可。

    另外,对于拦截器方法过滤也可以继承 MethodFilterInterceptor这个类来实现,

    本文提到的方法相对比较简单,用继承MethodFilterInterceptor这个类的方式就显得比较的复杂了。

    展开全文
  • 在地址栏中输入url,到页面呈现出来,中间的大致过程 get、post的区别 三次握手、TCP、UDP 常见状态码
  • 目录浏览器的地址栏中输入网址,回车之后查找 `DNS` 缓存发起 `DNS` 查询`DNS` 采用分布式设计的特点分布式、层次数据库 浏览器的地址栏中输入网址,回车之后 本文将以 Web 页面的请求历程为例,来和你聊聊计算机...
  • chrom中地址栏输入搜索内容点击后自动跳转到百度首页。。 2、原因 百度正确的搜索格式是: http://www.baidu.com/s?wd=%s chrome浏览器百度的搜索格式是: http://www.baidu.com/#ie={inputEncoding}&wd=%s ...
  • 从浏览地地址栏输入地址按下回车,可以看做是一次请求的发起,那么必然会经历以下几个步骤: 解析url地址 DNS解析 TCP链接 发送http请求 服务器接收请求 服务器响应 TCP链接断开 浏览器解析资源 1. 解析url 浏览器...
  • 最近项目有一个需求,是在地址栏输入路由,跳转到对应路由组件,开发环境这样做是可以跳转的,但是项目打包后,通过地址栏跳转会报错。因为 vue 页面上显示哪个组件是根据 vue-router 进行控制的,在地址栏上...
  • 了解在地址输入栏中简单的按下一个回车背后复杂的故事 了解本文主题之前我们不妨花上小几分钟简单阅读一下一下的内容,或许会有新的收获 1.浏览器的各种访问目标统称为URI 2.尽管浏览器能够解析网址并生成HTTP消息...
  • 浏览器对url地址进行url编码:如果url地址中出现非ASCII字符,则浏览器会对其进行编码 浏览器构造一个没有消息体的GET请求,发送至服务器,等待服务器的响应,此时浏览器标签页往往会出现一个等待的图标 服务器...
  • 当你的浏览器中地址栏输入地址回车到展示页面,经历了什么? DNS解析: 寻找资源所在的机器的过程,返回一个IP地址。递归和迭代解析,默认和使用较多的是递归。 TCP连接: 三次握手 发送HTTP请求: 客服...
  • 当用户浏览器地址栏中输入网址,到看到页面,经历的步骤 1.解析输入的URL地址(看上一篇70) 2.DNS解析 网站中,每发送一个TCP请求,都要进行DNS解析(一但当前域名解析过一次,浏览器一般会缓存解析记录,缓存...
  • 一、准备:DHCP、UDP、IP和以太网二、仍准备:DNS和ARP三、仍准备:域内路由选择到DNS服务器四、Web客户—服务器交互:TCP和HTTP 学习了《计算机网络——自顶向下》总结一下第六章,也就是学完了应用层、运输层...
  • 1,如果地址栏中输入的是一个域名,浏览器会先使用自己的DNS缓存进行域名解析,转为IP地址,如果缓存中不存在,则会请求使用上层DNS(操作系统的DNS),操作系统会先查询本地HOST文件,如果HOST文件中不存在则会使用...
  • 当你的浏览器中地址栏输入地址并回车的一瞬间到页面能够展示回来,经历了什么? 负责域名解析的 DNS 服务 DNS(Domain Name System)服务是和 HTTP 协议一样位于应用层的 协议。它提供域名到 IP 地址之间的解析...
  • WWW页面访问的大致过程如下:用户浏览器中输入要访问的WWW页面的(48)地址(http://hostnane/dirc阅读以下说明,回答问题1至问题5,将解答填入答题纸对应的解答内。【说明】某网络拓扑结构如试题二(15分)阅读以下...
  • 首先尝试与http默认端口80建立TCP连接(http是是基于TCP之上的) 如果协议是https那么需要转换协议为https 连接建立后服务器发送html文本 浏览器显示html文本 其中的一些解释: 域名解析:真实过程非常复杂,主要...
  • 程序员们加班加点的写代码,但是有时候还是会犯错,就比如PHP在地址栏中去除URL后缀的问题,别着急,今天爱站技术频道小编带大家一起来了解一下如何使用PHP浏览器地址栏中去除URL后缀?1. URL重写组件url-rewrite2...
  • 浏览器地址栏输入URL 浏览器查缓存,如果请求资源缓存并且新鲜,跳转到转码步骤 如果资源未缓存,发起新请求 如果已缓存,检验是否足够新鲜,足够新鲜直接提供给客户端,否则与服务器进行验证。 检验新鲜...
  • 输入URL到地址栏>根据您的网络配置,请求将发送到DNS服务器> DNS将路由您到域名的真实IP>一个请求(具有完整的Http头)将被发送到服务器(具有3的IP来识别)的80端口(假设我们不指定另一个端口)>服务器将搜索...
  • 首先嘛,你得浏览器里输入要网址,然后我们看看后台发生了什么?1:浏览器查找域名的IP地址浏览器缓存 – 浏览器会缓存DNS记录一段时间系统缓存 – 如果浏览器缓存里没有找到需要的记录,浏览器会做一个系统调用...
  • 1. JavaWeb–HTTP详解&游览器地址栏中输入地址并且回车到页面显示这过程经历了什么? 文本:html,字符串,… 超文本:图片,音乐,视频,定位,地图… 默认端口号:80 https:安全的 默认端口号:443 1.1 两个时代 ...
  • 我们都知道浏览器的网址栏位输入www.baidu.com,点下回车后,会呈现出百度的首页。那么深层次的探究一下,这期间是如何做到资源的正确请求的,还发生了什么事情呢? 网络模型 回答问题之前,我们先回顾一下网络...
  • 一、简单分析简单的分析,从输入 URL到回车后发生的行为如下:URL解析DNS 查询TCP 连接HTTP 请求响应请求页面渲染二、详细分析URL解析首先判断你输入的是一个合法的URL 还是...
  • 浏览器地址栏输入url 以后 发生了什么? 首先会进行 url 解析,根据 dns 系统进行 ip 查找 根据 ip 就可以找到服务器,然后浏览器和服务器会进行 TCP 三次握手建立连接,如果此时是 https 的话,还会建立 TLS ...
  • 电脑窗口地址栏清理

    2021-06-16 08:33:40
    这时再查看IE的地址栏,就会发现地址栏中以“ http ://”打头的网址都被删除了。2、上面的方法只可以删除掉那些以“ http ://”开头的网址,但剩下的中文实名却没有被删除掉,而且显得更加醒目,如果想要删除掉...
  • 浏览器的地址栏输入URL并按下回车。括号内的是考点,链接主要是后端小伙伴的事情,这边不需要着重说,要把 首先浏览器查找当前URL是否存在缓存,并比较缓存是否过期,如果浏览器没有查找到缓存或者缓存已经过期,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 221,696
精华内容 88,678
关键字:

在地址栏中输入http