zoukankan      html  css  js  c++  java
  • 从百度/谷歌搜索上输入一个网址,到浏览器加载出网站页面的过程中,发生了什么

    让我们先回顾一下网络体系的七层体系结构图

    一、DNS 解析:(网址转换成对应的IP地址)

    1. DNS递归:

    先看本地域名服务器是否缓存该地址,然后各服务器依次递归.(根域名服务器) -> .com -> google.com. -> www.google.com.(这样是不是会造成多次请求连接浪费资源?)

    2. DNS缓存:

    所以各个服务器都会存在缓存,以便下次使用,浏览器、路由器、域名服务器都会有缓存

    3. DNS负载:

    如果某个服务器接受的请求和大量连接,会给服务器造成巨大的压力,通过部署多个服务器来实现DNS 负载,重定向另外一个服务器,减轻当前服务器的压力。****

    二、TCP 连接:(浏览器向该地址服务器发送TCP 连接请求)

    三次握手请求连接(也可以考虑下四次挥手的过程)看之前的文章TCP 中的三次握手和四次挥手

    三、发送HTTP 请求:(浏览器向网站服务器发送一个HTTP请求)

    1. Https VS http

    他们的区别就是在 HTTP 与 TCP 中加入了 ssl 进行相应的验证

    2. HTTP 请求报文(请求行,请求报头和请求正文)

    2.1 请求行:GET index.html HTTP/1.1

    常用的方法有:GET,POST,DELETE,OPTIONS,HEAD

    2.2 请求报头:允许客户端向服务器传递请求的*附加信息和客户端自身的信息*

    常见的请求报头字段有:Accept, Accept-Charset, Accept-Encoding, Accept-Language, Content-Type, Authorization, Cookie, User-Agent等。

    2.3 请求正文:如果使用的是POST,PUT方法时,数据就存储在请求正文里面,包括一些与请求正文相关的信息。

    四、HTTP响应报文:(服务端向浏览器返回一个HTTP 报文)

    状态码:由三位数字组成,第一个数字定义了响应的类别

    • 1xx: 表示请求已接收,继续处理

    • 2xx: 请求已经成功被接受

    • 3xx: 重定向-要完成请求必须进行更进一步的操作

    • 4xx: 客户端错误-请求语法错误或者请求无法实现

    • 5xx: 服务端错误-服务器未能实现合法的请求

    响应报头:

    响应相关报头字段有:Server, Connection...

    响应报文:

    服务器返回给浏览器的文本信息,比如html,css,js,图片等等文件

    五、浏览器解析文件,渲染页面

  • 相关阅读:
    Python处理时间 time && datetime 模块
    破解Mysql数据库密码
    JS一定要放在Body的最底部么?
    jQuery 层次选择器
    关于jquery中html()、text()、val()的区别
    解读JSP的解析过程
    JavaScript字符串分割方法
    maven install与maven package 的区别
    JSP起源、JSP的运行原理、JSP的执行过程
    Chrome隐身模式有什么用
  • 原文地址:https://www.cnblogs.com/EthanWong/p/15168632.html
Copyright © 2011-2022 走看看