在客户端输入一个网址并访问,到我们看到页面,其中都经历了什么?


  • 简单回答:

    • 【Request 请求阶段】
    1. 首先根据客户端输入的域名,到DNS服务器进行反解析(通过域名找到对应服务器的外网IP)
    2. 通过找到的外网IP,找到对应的服务器
    3. 通过在地址栏中输入的端口号(没输入是因为不同协议有自己默认的端口号),找到服务器上发布的对应项目
    • 【Response 响应阶段】
    1. 服务器获取到请求资源文件的地址例如:xxx/xxx/index.html,把资源文件中的源代码 找到
    2. 服务器端会把找到的源代码返回给客户端(通过http等传输协议返回)
    • 【浏览器自主渲染阶段】
    1. 客户端接收到源代码后,会交给浏览器的内核(渲染引擎)进行渲染,最后由浏览器绘制出对应页面

    知识点:

    • 浏览器内核:IE(Trident) | Firefox(Gecko) | Safari/Chrome(Webkit)
    • 360浏览器、猎豹浏览器都是采用IE+Chrome双内核,搜狗、遨游、QQ浏览器也是双内核:Trident(兼容模式)+Webkit(高速模式); UC浏览器电脑版采用Blink内核和Trident内核,百度浏览器、世界之窗内核都是单核(IE内核)
    • 常见协议以及默认端口号
      • ftp:21 文件传输协议
      • ssh:22
      • pop3:110 因特网电子邮件第一个离线协议标准
      • smtp:25 简单邮件传输协议
      • http:80 超文本传输协议(客户端和服务端传输的内容除了文本外,还可以传输图片音视频等文件流(二进制编码、base64码、以及传输xml格式的数据等))
      • https:443 http下加入ssl
      • svn:3690
      • tomcat:8080
      • oracle:1521
      • mysql:3306

URL URI URN

uri:统一资源标识符

url:统一资源路径地址

urn:统一资源名称

uri = url + urn

一个完成的URL包含很多部分

https://baike.baidu.com/item/%E4%B8%8D%E5%88%B0/134029?fr=aladdin#3

  1. 传输协议:(例如:https)用来完成客户端和服务器端的数据(内容)传输的,类似于快递小哥负责把客户和商家的物品来回传递

    1. 客户端不仅可以向服务器发送请求,还可以把一些内容传递给服务器
    2. 服务器端也可以把内容返回给客户端
    3. 服务端和客户端传输的内容总成为HTTP报文,这些报文信息都是基于传输协议完成的传输,客户端传递给服务器叫做请求(Request),服务器返回给客户端叫做响应(Response),request+response两个阶段统称为:HTTP事务 (事务:一件完整的事情)
    4. 当客户端向服务端发送请求,此时客户端和服务端会建立一个传输通道,传输协议就是基于这个通道把信息进行传输的
    5. 当服务端接收到请求信息,把内容返回给客户端后,传输通道会自动销毁关闭
  2. HTTP报文

    1. 起始行
      1. 请求起始行
      2. 响应起始行
    2. 首部
      1. 请求头:内置请求头、自定义请求头
      2. 响应头:内置响应头、自定义响应头
      3. 通用头:请求和响应都有的
    3. 主体
      1. 请求主题
      2. 响应主题

    请求XXX,都是客户端设置的信息,服务端获取这些信息

    响应XXX,都是服务端设置的信息,客户端接收这些信息

    总结:

    1. 客户端传递给服务端数据
      1. URL问号传参
      2. 设置请求头
      3. 设置请求主题
    2. 服务端返回给客户端内容
      1. 设置响应头
      2. 设置响应主题