JavaDriver JavaDriver
首页
  • 基础
  • 并发
  • JVM
  • 设计模式
  • 计算机网络
  • 操作系统
  • 数据结构
  • 算法
  • MYSQL
  • REDIS
  • Netty
  • Kafka
系统设计
非技术
关于
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

YoungAnn

西二旗Java老司机一枚 致力于社会主义添砖Java
首页
  • 基础
  • 并发
  • JVM
  • 设计模式
  • 计算机网络
  • 操作系统
  • 数据结构
  • 算法
  • MYSQL
  • REDIS
  • Netty
  • Kafka
系统设计
非技术
关于
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • 计算机网络

    • 简述 TCP 三次握手以及四次挥手的流程。为什么需要三次握手以及四次挥手?
    • 简述常见的 HTTP 状态码的含义
    • 从输入 URL 到展现页面的全过程
      • 总体来说分为以下几个过程:
      • 输入网址
      • DNS解析
        • 什么是IP地址
        • 什么是DNS
        • DNS解析
        • DNS查询的两种方式:递归查询和迭代查询
        • DNS域名称空间的组织方式
        • DNS负载均衡
      • 建立TCP/IP链接
        • ”三次握手”的详解
        • 为什么要三次握手
    • HTTP 中 GET 和 POST 区别
    • TCP 怎么保证可靠传输
    • 什么是 TCP 粘包和拆包?
    • 简述 HTTPS 的加密与认证过程
    • 简述对称与非对称加密的概念
    • TCP 与 UDP 在网络协议中的哪一层,他们之间有什么区别?
    • 如何解决 TCP 传输丢包问题?
    • TCP 长连接和短连接有那么不同的使用场景?
    • TCP 的 keepalive 了解吗?说一说它和 HTTP 的 keepalive 的区别?
    • HTTP 与 HTTPS 有哪些区别?
    • TCP 中常见的拥塞控制算法有哪些?
    • 简述 HTTP 1.0,1.1,2.0 的主要区别
    • 从系统层面上,UDP如何保证尽量可靠?
    • TCP 挥手时出现大量 CLOSE_WAIT 或 TIME_WAIT 怎么解决?
    • 简述 TCP 滑动窗口
    • 简述TCP重传机制
    • 简述 JWT 的原理和校验机制
    • 为什么需要序列化?有什么序列化的方式?
    • 简述 iPv4 和 iPv6 的区别
    • TCP 中 SYN 攻击是什么?如何防止?
    • 简述 DDOS 攻击原理,如何防范它?
    • 什么是 ARP 协议?简述其使用场景
    • 什么是跨域,什么情况下会发生跨域请求?
    • Cookie 和 Session 的关系和区别是什么?
    • 简述 WebSocket 是如何进行传输的
    • DNS 查询服务器的基本流程是什么?DNS 劫持是什么?
    • RestFul 是什么?RestFul 请求的 URL 有什么特点?
    • 简述 HTTP 报文头部的组成结构
  • 操作系统

  • 数据结构

  • 算法

  • 剑指Offer题解

  • 计算机基础
  • 计算机网络
YoungAnn
2022-06-23
目录

从输入 URL 到展现页面的全过程

从我们输入一个网址到页面展现的过程到底发生了什么呢?

# 总体来说分为以下几个过程:

  • 输入网址
  • DNS解析
  • 建立TCP/IP链接
  • 发送HTTP请求
  • 服务器处理请求
  • 服务器返回HTTP响应
  • 浏览器渲染页面并展现
  • 断开连接

# 输入网址

当我们想要打开一个页面时,很简单的会想到去输入一个网址 我们以本网址为例,解释一下它各部分的组成:

https://www.baidu.com
1
  • https :https是协议(Protocol),它表明了浏览器使用何种协议,有http、https、ftp、mailto等,其中https是加密认证版的http(详见《图解HTTP》)

  • www.baidu.com :这是域名(Domain name),它表明正在请求哪个Web服务器,其中www是主机名(host)

# DNS解析

输入网址(URL)这一步我们很好理解,但是接下来所谓的域名解析是什么呢?又是为什么要进行域名解析呢?

# 什么是IP地址

IP 地址(Internet Protocol Address)是互联网协议特有的一种地址,它是 IP 协议提供的一种统一的地址格式。IP 地址为互联网上的每一个网络和每一台主机分配一个逻辑地址,以此来屏蔽物理地址的差异。 像192.168.59.0就是一个主机IP地址

# 什么是DNS

DNS服务器上存储着映射<域名-IP>,DNS解析就是去DNS服务器查询IP地址。

# DNS解析

DNS解析按照下面顺序逐个查找。

  • 本地(hosts文件)
  • DNS服务器(本地DNS | 根DNS)
  • 域服务器
  • 解析服务器的地址

# DNS查询的两种方式:递归查询和迭代查询

递归解析 迭代解析

# DNS域名称空间的组织方式

# DNS负载均衡

当一个网站有足够多的用户的时候,假如每次请求的资源都位于同一台机器上面,那么这台机器随时可能会蹦掉。

处理办法就是用DNS负载均衡技术,它的原理是在DNS服务器中为同一个主机名配置多个IP地址 在应答DNS查询时,DNS服务器对每个查询将以DNS文件中主机记录的IP地址按顺序返回不同的解析结果,将客户端的访问引导到不同的机器上去,使得不同的客户端访问不同的服务器,从而达到负载均衡的目的。

# 建立TCP/IP链接

# ”三次握手”的详解

# 为什么要三次握手

  • clien端 防止已失效的连接请求报文段突然又传送到了服务端,因而产生错误。 client发出的第一个连接请求报文段并没有丢失,而是在某个网络结点长时间的滞留了,以致连接释放以后的某个时间才到达server。 本来这是一个早已失效的报文段。但server收到此失效的连接请求报文段后,就误认为是client再次发出的一个新的连接请求。 于是就向client发出确认报文段,同意建立连接。

  • server端 假设不采用“三次握手”。 如果只要server发出确认,新的连接就建立了。并一直等待client发来数据。 事实是client并没有发出建立连接的请求,因此不会理睬server的确认,也不会向server发送数据。 但server端就会有许多这样的等待,server的很多资源就白白浪费掉了。

采用“三次握手”的办法可以防止上述现象发生。主要目的防止server端一直等待,浪费资源。

编辑 (opens new window)
上次更新: 2022/09/26, 09:00:38
简述常见的 HTTP 状态码的含义
HTTP 中 GET 和 POST 区别

← 简述常见的 HTTP 状态码的含义 HTTP 中 GET 和 POST 区别→

最近更新
01
电商-商品系统设计
12-17
02
关于如何写OKR
12-09
03
对事不对人 vs 对人不对事
12-09
更多文章>
Theme by Vdoing | Copyright © 2022-2023 YoungAnnn | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式