1.在浏览器中输⼊ URL 地址到显示主页的过程?

1.浏览器解析URL

URL = 协议 + 存放资源的主机域名 + 文件路径名
如果没有文件路径名,则访问index.html、default.html这些默认文件。

2.生成Http请求消息

请求报文 = 请求行 + 消息头 + 消息体
响应报文 = 状态行 + 消息头 + 消息体

3.查询服务器域名对应的IP地址——DNS解析——迭代查询

1.客户端首先会发出一个DNS请求,问www.server.com的IP是啥,并发给本地DNS服务器(即,客户端的 TCP/IP 设置中填写的 DNS 服务器地址);
2.本地DNS服务器收到客户端的请求后,如果缓存里的表格能找到 www.server.com,则它直接返回 IP 地址。

  • 如果没有本地DNS服务器会去请求根DNS服务器

3.根 DNS 收到来自本地 DNS 的请求后,发现后置是 .com,会把 .com 顶级DNS服务器地址给本地 DNS
4.本地 DNS 收到**.com 顶级DNS服务器的地址后,对其发起请求;
5.
.com 顶级DNS服务器收到本地DNS请求后,响应给他一个www.server.com 区域的权威 DNS 服务器的地址;
6.
本地DNS收到之后,会向www.server.com区域的权威 DNS 服务器发起请求,就会收到对应的 IP 地址**;
7.本地 DNS 再将 IP 地址返回客户端,客户端和目标建立连接

4.TCP连接

浏览器获得域名对应的IP地址后,向服务器请求连接,发起TCP三次握手

5.发送Http请求

TCP连接建立起来后,浏览器向服务器发起Http请求

6.服务器处理请求并返回Http报文

服务器收到客户端的请求,并根据路径参数映射到特定的请求处理器进行处理,并将处理结果及对应视图返回给浏览器

7.浏览器解析渲染页面

浏览器解析并渲染视图,若遇到js文件、css文件及图片等静态资源的引用,则重复上述步骤向服务器请求资源,向用户呈现完整页面

8.连接结束

2.Http常见面试题

2.1.Http基本概念

1.Http是什么?
  • 超文本传输协议,是一个在计算机世界里专门在**「两点」之间「传输」文字、图片、音频、视频等「超文本」数据的「约定和规范」**。
2.Http常见状态码?

2xx:成功,报文已收到并被正确处理;

  • 200,OK
  • 204,OK,但是响应头没有body数据;

3xx:重定向,资源位置发生变动,需要客户端重新发送请求;

  • 301,永久重定向,说明请求的资源已经不存在了,需改用新的 URL 再次访问。
  • 302,临时重定向,请求的资源还在,但暂时需要用另一个 URL 来访问。

4xx:客户端错误

  • 403,表示服务器禁止访问资源,并非客户端请求出错;
  • 404,表示请求的资源在服务器上找不到;

5xx:服务端错误

  • 501,客户端请求的功能还不支持
  • 503,表示服务器很忙,暂时无法响应
3.Http 常见字段有哪些?

Host:指定服务器的域名

Host: www.baidu.com

Content-Length 字段:表明本次返回数据的长度
Connection字段:客户端要求服务器使用 TCP 长连接;

Connection: keep-alive

Content-Type 字段:表示本次数据的编码方式;

Content-Type: text/html; charset=utf-8

Content-Encoding 字段:表示数据的压缩方法;

Content-Encoding: gzip

2.2.Get、Post

1.Get、Post两者区别

1.Get 方法:含义是请求从服务器获取资源,这个资源可以是静态的文本、页面、图片视频等。
2.Post 方法:它向 URI 指定的资源提交数据,数据就放在报文的 body 里。

2.GET 和 POST 方法都是安全和幂等的吗?

Get:安全且幂等。
POST:不安全、不幂等。 因为是「新增或提交数据」的操作,会修改服务器上的资源,且多次提交数据就会创建多个资源

2.3.HTTP特性

1.http优点

  • 简单、灵活和易于扩展、应用广泛和跨平台

2.http缺点

  • 明文传输(不加密),内容可能会被窃听。比如,账号信息容易泄漏,那你号没了。
  • 不验证通信方的身份,因此有可能遭遇伪装。比如,访问假的淘宝、拼多多,那你钱没了。
  • 无法证明报文的完整性,所以有可能已遭篡改。比如,网页上植入垃圾广告,视觉污染,眼没了。

2.4.Https与Http

1.HTTP 与 HTTPS 有哪些区别?

1.Https在TCP和Http网络层之间加入了SSL/TLS安全协议,使得报文能够加密传输;(防明文传输)
2.Https在Tcp三次握手之后,还要进行SSL/TLS的握手过程,才可以进行加密报文传输;(防篡改)
3.Https协议要向CA(证书权威机构)申请数字证书,来保证服务器的身份是可信的。
4.Https的端口号是443,Http端口号是80。

2.Https解决了Http的哪些问题?

1.信息加密:交互信息无法被窃取;
2.校验机制:防篡改内容,篡改了就不能正常显示;
3.身份证书:可以证明网站真实性。

3.HTTPS 是如何解决上面的三个风险的?

1.混合加密的方式实现信息的机密性,解决了窃听的风险。

  • 1.通信建立前,先用非对称加密的方式交换会话密钥,后续不再使用非对称加密;
  • 2.通信过程中,全部使用对称加密的会话密钥的方式加密解密

2.摘要算法的方式来实现完整性,它能够为数据生成独一无二的「指纹」,指纹用于校验数据的完整性,解决了篡改的风险。

  • 客户端在发送明文之前会通过摘要算法算出明文的「指纹」,发送的时候把**「指纹 + 明文」一同加密成密文后,发送给服务器,服务器解密后**,用相同的摘要算法算出发送过来的明文,通过比较客户端携带的「指纹」和当前算出的**「指纹」做比较**,若「指纹」相同,说明数据是完整的。

3.将服务器公钥放入到数字证书中,解决了冒充的风险。

  • 如何保证公钥不被篡改和信任度?
    借助第三方权威机构 CA (数字证书认证机构),将服务器公钥放在数字证书(由数字证书认证机构颁发)中,只要证书是可信的,公钥就是可信的。
4.HTTPS 是如何建立连接的?其间交互了什么?

SSL/TLS 协议基本流程:(前两步也就是 SSL/TLS 的建立过程,也就是握手阶段。)

  • 1.客户端向服务器索要并验证服务器的公钥。
  • 2.双方协商生产「会话秘钥」。
  • 3.双方采用「会话秘钥」进行加密通信。

SSL/TLS 的「握手阶段」涉及四次通信,可见下图:

1. ClientHello
由客户端向服务器发起加密通信请求,也就是 ClientHello 请求。客户端主要向服务器发送以下信息:

  • (1)客户端支持的 SSL/TLS 协议版本,如 TLS 1.2 版本。
  • (2)客户端生产的随机数(Client Random),后面用于生产「会话秘钥」。
  • (3)客户端支持的密码套件列表,如 RSA 加密算法。

2. SeverHello
服务器收到客户端请求后,向客户端发出响应,也就是 SeverHello。服务器回应的内容有如下内容:

  • (1)确认 SSL/ TLS 协议版本,如果浏览器不支持,则关闭加密通信。
  • (2)服务器生产的随机数(Server Random),后面用于生产「会话秘钥」。
  • (3)确认的密码套件列表,如 RSA 加密算法。
  • (4)服务器的CA数字证书。

3. 客户端回应
客户端收到服务器的回应之后,首先通过浏览器或者操作系统中的 CA 公钥,确认服务器的数字证书的真实性。
如果证书没有问题,客户端会从数字证书中取出服务器的公钥,然后使用它加密报文,向服务器发送如下信息:

  • (1)一个随机数(pre-master key)。该随机数会被服务器公钥加密。
  • (2)加密通信算法改变通知,表示随后的信息都将用「会话秘钥」加密通信。
  • (3)客户端握手结束通知,表示客户端的握手阶段已经结束。这一项同时把之前所有内容的发生的数据做个摘要,用来供服务端校验。

上面第一项的随机数是整个握手阶段的第三个随机数,这样服务器客户端就同时有三个随机数,接着就用双方协商的加密算法,各自生成本次通信的「会话秘钥」。

4. 服务器的最后回应

服务器收到客户端的第三个随机数(pre-master key)之后,通过协商的加密算法,计算出本次通信的「会话秘钥」。然后,向客户端发生最后的信息:

  • (1)加密通信算法改变通知,表示随后的信息都将用「会话秘钥」加密通信。
  • (2)服务器握手结束通知,表示服务器的握手阶段已经结束。这一项同时把之前所有内容的发生的数据做个摘要,用来供客户端校验。

至此,整个 SSL/TLS 的握手阶段全部结束。接下来,客户端与服务器进入加密通信,就完全是使用普通的 HTTP 协议,只不过用「会话秘钥」加密内容。

5.Http/1.1、Http/1.2、Http/1.3演变

3.Http长连接、短连接的区别与应用场景

1.HTTP短连接

HTTP/1.0 中默认使用短连接。

2.HTTP长连接

HTTP/1.1 起,默认使用长连接,用以保持连接特性。使用长连接的 HTTP 协议,会在响应头加入这行代码:

Connection:keep-alive

HTTP ⼀般会有 httpd 守护进程,⾥⾯可以设置 keep-alive timeout,当 tcp 链接闲置超过这个时间就会关闭,也可以在 HTTP 的 header ⾥⾯设置超时时间

3.长连接和短连接的应用场景

1.长连接多用于操作频繁,点对点的通讯,而且连接数不能太多情况。

2.短连接多用于并发量大,但每个用户无需频繁操作的场景。 WEB 网站的 http 服务一般都用短连接, WEB 网站这么频繁的成千上万甚至上亿客户端的连接用短连接会更省一些资源, 如果用长连接,而且同时有成千上万的用户,如果每个用户都占用一个连接的话,那可想而知吧。

4.全网最透彻HTTPS

TCP UDP
⾯向连接的 ⽆连接的
每⼀条 TCP 连接只能有两个端点,每⼀条 TCP 连接只能是点对点的(⼀对⼀) UDP ⽀持⼀对⼀、⼀对多、多对⼀和多对多的交互通信;
TCP 提供可靠交付的服务。通过 TCP 连接传送的数据,⽆差错、不丢失、不重复、并且按序到达; UDP 使⽤尽最⼤努⼒交付,即不保证可靠交付,因此主机不需要维持复杂的链接状态(这⾥⾯有许多参数)
⾯向字节流 ⾯向报⽂的
TCP 提供全双⼯通信

5.TCP

6. UDP

计算机网络—URL到显示的过程、Http、Https、长连接短连接相关推荐

  1. 408计算机网络04-HTTP 长连接短连接使用场景是什么

    长连接:多用于操作频繁,点对点的通讯,而且客户端连接数目较少的情况.例如即时通讯.网络游戏等. 短连接:用户数目较多的Web网站的 HTTP 服务一般用短连接.例如京东,淘宝这样的大型网站一般客户端数 ...

  2. TCP通信过程详解以及tcp长连接和短连接

    1. TCP连接 当网络通信时采用TCP协议时,在真正的读写操作之前,server与client之间必须建立一个连接,当读写操作完成后,双方不再需要这个连接 时它们可以释放这个连接,连接的建立是需要三 ...

  3. 【重难点】【计算机网络 01】OSI 七层模型和 TCP/IP 四层模型、IP 地址分为哪几类、ping 的原理、从浏览器地址栏输入 URL 到显示网页的过程、什么是 socket

    [重难点][计算机网络 01]OSI 七层模型和 TCP/IP 四层模型.IP 地址分为哪几类.ping 的原理.从浏览器地址栏输入 URL 到显示网页的过程.什么是 socket 文章目录 [重难点 ...

  4. 从输入URL到显示页面的过程中发生了什么?

    概览 关于这个问题,我看过很多文章,每个人分析的方法与总结的步骤都不相同.我这里按照自己的理解把过程分为了十个部分.因为我主要学习后端,所以最后几步前端的内容略写了. 一.URL解析 二.DNS域名解 ...

  5. 从浏览器输入URL到页面显示的过程

    从浏览器地址栏输入url到显示页面的步骤: 目录 1.概述 浏览器根据请求的URL交给DNS域名解析器,找到真实IP,向服务器发起请求: 三次握手建立连接,服务器交给后台处理完成后返回数据,浏览器接收 ...

  6. 地址栏输入URL到显示页面的过程

    前言 从地址栏输入URL到显示页面都发生了什么?这是一道面试经常会考的面试题.那么下面我们就来探讨一下从你输入URL后到响应,都经历了哪些过程. 1.DNS解析 我们在用户PC中使用网页浏览器来访问外 ...

  7. 输入一个url到显示页面经过哪些过程

    输入一个url到显示页面经过哪些过程. 域名解析 --> 发起TCP的3次握手 --> 建立TCP连接后发起http请求 --> 服务器响应http请求,浏览器得到html代码 -- ...

  8. 计算机网络(二):HTTP 和 HTTPS

    文章目录 1. URL 和 URI 1.1 统一资源标识符 1.2 URL格式 2. HTTP报文 2.1 报文的组成部分 2.1.1 起始行 2.1.2 首部 2.1.3 实体的主体部分 2.2 H ...

  9. 从浏览器地址栏输入url到显示页面的步骤

    从浏览器地址栏输入url到显示页面的步骤(以HTTP为例) - 在浏览器地址栏输入URL - 浏览器查看缓存,如果请求资源在缓存中并且新鲜,跳转到转码步骤     - 如果资源未缓存,发起新请求   ...

最新文章

  1. 【转载】邻接表表示法
  2. WebSocket FlashSocket
  3. SAP Spartacus的OccCmsPageNormalizer
  4. 文件类的操作 File c# 1614823687
  5. java设计模式2--工厂模式
  6. c语言实现sbrk函数,菜鸟随笔(2)---brk()与sbrk()函数的学习与使用
  7. Ubuntu 16.04 安装后网络、ssh禁止root、上传设置
  8. 大智慧行情服务器在哪个文件夹,【大智慧】大智慧公式在哪个文件夹?
  9. 基于java网上购物系统论文,基于Java的网上购物系统的设计与实现_毕业设计(论文).doc...
  10. 在html中做框架的页面,网页中的框架(详解)
  11. python中show函数的用法_python学习笔记之——函数模块
  12. 基于PT100的温度测量系统设计
  13. 手把手教你用Java获取IP归属地
  14. java 将5mb以内图片压缩至200kb以下
  15. 《道德经》马王堆出土帛书版
  16. superoj738 诸葛亮
  17. 基于YOLOV5的自动瞄准(附代码)
  18. Java 数字转字符串并指定位数,位数不足,自动补零
  19. 深入理解 word2vec 原理
  20. 如何检查和处理“ ARP 欺骗”木马的方法

热门文章

  1. 【通俗易懂】什么是机器学习
  2. QtCreator添加文件夹
  3. 【10月最新】必问的25道mybatis面试题,都会的话你也可以去大厂
  4. 手机评测 三星V-208
  5. 为什么我电脑在线看黄色很慢_为什么我的电脑这么慢?
  6. Windows10环境下自己配置Pytracking详细流程(有参考博客)
  7. Ruoyi框架学习--Vue前端配置文件详解
  8. jdk1.8——Base64
  9. 图片太大不要慌,简单的调整图片大小
  10. Linux上github提示Permission denied (publickey),如何才能解决?