HTML|计算机网络相关

news2024/11/16 3:15:31
1.三次握手

第一次握手:客户端首先向服务端发送请求。
第二次握手:服务端在接收到客户端发送的请求之后,需要告诉客户端已收到请求。
第三次握手:客户端在接收到服务端发送的请求和确认信息之后,同样需要告诉服务端已收到信息。
当三次握手都成功的时候,我们发现此时客户端发送的信息服务端能够收到并且服务端发送的信息客户端也能收到,通信双方连接成功

2.为什么需要四次挥手

为了释放连接
第一次挥手:客户端向服务端发送断开连接的请求,告诉服务端我这边不需要再请求你的数据了。
第二次挥手:服务端在接收到客户端发送的断开请求后,需告诉客户端已收到请求。
第三次挥手:当服务端数据传输完毕之后,向客户端发起断开连接的请求。
第四次挥手:客户端接收到服务发送的断开连接请求后,需告诉服务端已收到信息,作出应答。
问题补充:第二次挥手的时候。为什么不能像握手的时候一样,服务端对客户端断开连接的请求做确认应答的时候,同时向客户端发送断开连接的请求。这样“三次挥手”不就可以了么?
实际的网络中,服务端在接收到客户端断开连接的请求的时候,此时服务端可能还有数据没有传输完毕,不能立即向客户端发送断开连接的请求!所以当客户端主动发起断开请求的时候,服务器先回应一个确认,等所有数据传输完毕后再发送服务器断开的请求。

3.HTTP事务流程(工作原理)(6)
在这里插入图片描述
基本流程如下:
(1)域名解析。
(2)客户端与服务器建立TCP连接(3次握手)。
(3)连接成功后,客户端发送请求给服务器。
(4)服务器端响应请求(服务器发送完响应信息后,就会断开TCP连接,因此HTTP是无状态的),浏览器得到HTML代码。
(5)浏览器解析HTML代码,并请求HTML代码中的资源。
(6)浏览器对页面进行渲染并呈现给用户。

4.HTTPS的工作原理(9)

在这里插入图片描述
1、客户端发起 HTTPS 请求
用户在浏览器里输入一个 https 网址,然后连接到 server 的 443 端口。
2、传送证书
采用 HTTPS 协议的服务器必须要有一套数字证书,这套证书其实就是一对公钥和私钥,公钥就像是一把锁头,私钥是一个钥匙,只有这个私钥才能打开公钥,其他人打不开自然就看不到里边的内容了
服务器将证书发送给客户端,这个证书其实就是公钥,只是包含了很多信息,如证书的颁发机构,过期时间等等。
3、客户端解析证书
这部分工作是有客户端的TLS-安全传输层协议来完成的,首先会验证公钥是否有效,如果发现异常,则会弹出一个警告框,提示证书存在问题。
4、生成随机密钥
如果证书没有问题,那么就生成一个随机对称密钥
5、加密对称密钥
公钥对该对称密钥进行加密,就好像上面说的,把随机值用锁头锁起来,这样除非有钥匙,不然看不到被锁住的内容。
6、传送加密信息
将加密后的对称密钥发送给服务器,目的就是让服务端得到对称密钥,以后客户端和服务端的通信就可以通过这个对称密钥进行加密解密了。
7、服务端解密信息
服务端用私钥解密后,得到了客户端传过来的对称密钥,然后把内容通过该密钥进行对称加密,所谓对称加密就是,将信息和对称密钥通过某种算法混合在一起,这样除非知道对称密钥,不然无法获取内容,而正好客户端和服务端都知道这个密钥,所以只要加密算法够彪悍,对称密钥够复杂,数据就够安全。
8、传输加密后的信息
这部分信息是服务器用对称密钥加密后的信息,可以在客户端被还原
9、客户端解密信息
客户端用之前生成的对称密钥解密服务段传过来的信息,于是获取了解密后的内容,整个过程第三方即使监听到了数据,也束手无策。

5.Http与https(超文本传输安全协议)的区别

http特点

  • 无状态:协议对客户端没有状态存储,比如访问一个网站需要反复进行登录操作
  • 无连接:HTTP/1.1之前,由于无状态特点,每次请求需要通过TCP三次握手四次挥手,和服务器重新建立连接
  • 通信使用明文、请求和响应不会对通信方进行确认无法保护数据的完整性,网络完全性极差

https特点

  • HTTPS协议通信时,报文通过ssl套接字加密解密传输(HTTP下加入SSL层,HTTPS的安全基础是SSL)
  • 主要目的,是提供对网站服务器的身份认证,保护交换数据的隐私与完整性基于HTTP协议,通过SSL或TLS提供加密处理数据、验证对方身份(数字证书)以及数据完整性保护
    非对称加密:用公钥和私钥来加解密
    对称加密:加密解密都用同一套秘钥

区别

1、HTTPS协议需要到CA(Certificate Authority,数字证书认证机构)申请证书,一般免费证书较少,因而需要一定费用。
2、HTTP是超文本传输协议,信息是明文传输,数据是不加密的,而HTTPS则是具有安全性的SSL加密传输协议
3、HTTP和HTTPS使用的是完全不同的连接方式,用的端口也不一样,HTTP是80端口,HTTPS是443端口
4、HTTP的连接很简单,是无状态的,HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比HTTP协议安全。

6.HTTPS的优缺点

优点:
(1)使用HTTPS协议可认证用户和服务器确保数据发送到正确的客户机和服务器
(2)HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,要比http协议安全,可防止数据在传输过程中不被窃取、改变,确保数据的完整性。
(3)HTTPS是现行架构下最安全的解决方案,虽然不是绝对安全,但它大幅增加了中间人攻击的成本
缺点:
(1)HTTPS协议握手阶段比较费时费电(加载时间延长近50%);
(2)HTTPS连接缓存不如HTTP高效;
(3)SSL证书需要钱
(4)SSL证书通常需要绑定IP,不能在同一IP上绑定多个域名,IPv4资源不可能支撑这个消耗。
(5)HTTPS协议的加密范围也比较有限,在黑客攻击、拒绝服务攻击、服务器劫持等方面几乎起不到什么作用。最关键的,SSL证书的信用链体系并不安全特别是在某些国家可以控制CA根证书的情况下,中间人攻击一样可行。

7.Http的状态码
  • 1XX:为信息性状态码,表示接收的请求正在处理

  • 2XX:为成功状态码,表示请求正常处理完毕

  • 3XX:为重定向状态码,表示需要进行附加操作以完成请求。

  • 4XX:为客户端错误状态码,表示服务器无法处理请求

  • 5XX:为服务端错误状态码,服务器处理请求出错

    常见的状态码例如:

    • 200 OK 请求成功被处理,且返回了数据。
    • 204 No Content 请求成功被处理,但是没有数据资源要返回
    • 304 Not Modified 在下面说到http对比缓存的时候会聊到,表示资源没有被修改,可以使用缓存。
    • 400 Bad Request 表示请求报文中存在语法错误。当错误发生时,需修改请求的内容后再次发送请求。
    • 401 Unauthorized 未认证需要认证后在重新请求。
    • 403 Forbidden 表明对请求资源的访问被服务器拒绝了。
    • 404 Not Found 表明服务器上无法找到请求的资源
    • 500 Internal Server Error 表明服务器端在执行请求时发生了错误
    • 503 Service Unavailable 表明服务器暂时处于超负载或正在进行停机维护,现在无法 处理请求。
8.代理服务器的功能

1.负载均衡。客户端的请求会先到达代理服务器,代理服务器可以拿到这个请求之后,可以通过特定的算法分发给不同的源服务器,让各台源服务器的负载尽量平均。
2.保障安全。利用心跳机制监控后台的服务器,一旦发现故障机就将其踢出集群。并且对于上下行的数据进行过滤,对非法 IP 限流。
3.缓存代理。将内容缓存到代理服务器,使得客户端可以直接从代理服务器获得而不用到源服务器那里。

9.TCP 和 UDP 的区别(4)

1.TCP 是面向连接的,udp 是无连接的即发送数据前不需要先建立链接
2.TCP 提供可靠的服务。也就是说,通过 TCP 连接传送的数据,无差错,不丢失,不重复,且按序到达;UDP 尽最大努力交付,即不保证可靠交付。 并且因为 tcp 可靠, 面向连接,不会丢失数据因此适合大数据量的交换。
3.TCP 是面向字节流,UDP 面向报文,并且网络出现拥塞不会使得发送速率降低(因 此会出现丢包,对实时的应用比如 IP 电话和视频会议等)。
4.TCP 只能是 1 对 1 的,UDP 支持 1 对 1,1 对多
5.TCP 的首部较大为 20 字节,而 UDP 只有 8 字节
6.TCP 是面向连接的可靠性传输,而 UDP 是不可靠的。

10.WebSocket 的实现和应用

websocket是一种全新的协议,不属于http无状态协议,协议名为"ws"
WebSocket 是 HTML5 中的协议,支持持久连续(是一个持久化的协议),它允许服务端向客户端传递信息,实现浏览器和客户端双向通信。。
ws头部多了标志属性:
Upgrade: websocket
Connection: Upgrade

websocket与http的关系

相同点:

  1. 都是基于tcp的,都是可靠性传输协议
  2. 都是应用层协议

不同点:

  1. WebSocket是双向通信协议,HTTP是单向的
  2. WebSocket是需要浏览器和服务器握手进行建立连接的
  3. 而http是浏览器发起向服务器的连接,服务器预先并不知道这个连接

联系:

  1. WebSocket在建立握手时,数据是通过HTTP传输的。但是建立之后,在真正传输时候是不需要HTTP协议的
11.websocket工作流程

首先,客户端发起http请求,经过3次握手后,建立起TCP连接;http请求里存放WebSocket支持的版本号等信息,如Upgrade、Connection、WebSocket-Version等;
然后,服务器收到客户端的握手请求后,同样采用HTTP协议回馈数据
最后,客户端收到连接成功的消息后,开始借助于TCP传输信道进行全双工通信

12.说说 HTTP1.0/1.1/2.0 的区别

HTTP1.0:
浏览器与服务器只保持短暂的连接,浏览器的每次请求都需要与服务器建立一个TCP连接
HTTP1.1:
引入了持久连接,即TCP连接默认不关闭,可以被多个请求复用
在同一个TCP连接里面,客户端可以同时发送多个请求
虽然允许复用TCP连接,但是同一个TCP连接里面,所有的数据通信是按次序进行的,服务器只有处理完一个请求,才会接着处理下一个请求。如果前面的处理特别慢,后面就会有许多请求排队等着
新增了一些请求方法
新增了一些请求头和响应头
HTTP2.0:
采用二进制格式而非文本格式
完全多路复用,而非有序并阻塞的、只需一个连接即可实现并行
使用报头压缩,降低开销
服务器推送

13.从输入 URL到回车后发生的行为如下 6

​ URL解析
​ DNS 查询–根据域名找到对应的目标服务器IP地址
​ TCP 连接
​ HTTP 请求
​ 响应请求
​ 页面渲染

14.fetch 发送 2 次请求的原因

fetch 发送 post 请求的时候,总是发送 2 次,第一次状态码是 204,第二次才成功?
原因很简单,因为你用 fetch 的 post 请求的时候,导致 fetch 第一次发送了一个 Options请求(带预检(Preflighted)的跨域请求、预请求),询问服务器是否支持修改的请求头,如果服务器支持,则在第二次中发送真正的请求

*15.Cookie、sessionStorage、localStorage 的区别 (4个)

共同点:都是保存在浏览器端、且同源的

区别
1、cookie 数据始终在同源的 http 请求中携带,即 cookie 在浏览器和服务器间来回传递,而 sessionStorage 和 localStorage 数据仅在本地保 存。cookie 数据还有路径(path)的概念,可以限制 cookie 只属于某个路径下 。
2、存储大小限制也不同cookie 数据不能超过 4K,同时因为每次 http 请求都会携带 cookie、所以 cookie 只适合保存很小的数据,如会话标识。sessionStorage 和 localStorage 虽然也有存储大小的限制,但比 cookie 大得多,可以达到 5M 或更大
3、数据有效期不同,sessionStorage:仅在当前浏览器窗口关闭之前有效;localStorage:始终有效,窗口或浏览器关闭也一直保存,因此用作持久数据;cookie:只在设置的 cookie 过期 时间之前有效,即使窗口关闭或浏览器关闭 。
4、作用域不同,sessionStorage 不在不同的浏览器窗口中共享,即使是同一个页面; localstorage 在所有同源窗口中都是共享的;cookie 也是在所有同源窗口中都是共享的 。
5、web Storage 支持事件通知机制,可以将数据更新的通知发送给监听者 。
6、web Storage 的 api 接口使用更方便 。

16.HTML 语义化标签的理解

语义化标签就是具有语义的标签,它可以清晰地告诉我们它是干什么的。
比如 nav 表示导航条,类似的还有 article、header、footer、section、h、p、hgroup 等等标签。

17.html5 增加了哪些新特性

1.新增了一些语义化标签: header, nav,main,article,section,aside,footer,hgroup
2.新增表单的输入类型:number,date,tel,search,email
3.新增表单属性;placeholder,required,multiple,autofocus,autocomplete,min,max
4.新增本地存储:localStorage 和 sessionScorage
5.新增媒体标签audio音频 video:视频
6.双向通信websocket
7.拖曳以及释放的api-7:dragstart:拖动开始,drag:拖动中,dragend:拖动结束;dragenter:拖动着进入,dragover:拖动着悬停在上方,dragleave:拖动着离开,drop: 在目标上方释放

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/839304.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

python并发编程(多线程、多进程、多协程)

文章截图来源来源B站:蚂蚁学python 引入并发,就是为了提升程序运行速度 1、基础介绍 1-1 CPU密集型计算、IO密集型计算 1-2 多进程、多线程、多协程对比 2、全局解释器锁GIL 2-1 python速度慢的两大原因 2-2 GIL是什么 2-3 为什么有GIL这个东西 2-4 怎样…

Vue [Day3]

Vue生命周期 生命周期四个阶段 生命周期函数&#xff08;钩子函数&#xff09; <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale…

企业服务器数据库中了devos勒索病毒怎么办如何解决预防勒索病毒攻击

随着科学技术的不断发展&#xff0c;计算机可以帮助我们完成很多重要的工作&#xff0c;但是随之而来的网络威胁也不断提升。近期&#xff0c;我们收到很多企业的求助&#xff0c;企业的服务器数据库遭到了devos勒索病毒攻击&#xff0c;导致系统内部的许多重要数据被加密无法正…

1310. 数三角形

题目链接&#xff1a;https://www.acwing.com/problem/content/1312/ 首先不考虑三点共线的情况一共有 种&#xff0c;现在来计算三点共线的情况 1.三点在一条直线上 2.三点在一条竖线上 3.三点在一条斜线上&#xff0c;正反斜线对称&#xff0c;仅需考虑一边的情况 如果…

考研数学Note1—划分框架

calculus 微积分教会我为什么椭圆的面积 π \pi πab. 隐函数求导Rule 如何理解Lagrange求函数极值&#xff1f; 万物可积&#xff08;所有的函数都能找到原函数?&#xff09;——数即宇宙 线性代数 It’s doubtless that Gitmind&Blog is best place for taking note…

Django Rest_Framework(二)

文章目录 1. http请求响应1.1. 请求与响应1.1.1 Request1.1.1.1 常用属性1&#xff09;.data2&#xff09;.query_params3&#xff09;request._request 基本使用 1.1.2 Response1.1.2.1 构造方式1.1.2.2 response对象的属性1&#xff09;.data2&#xff09;.status_code3&…

“三个高度”写作提纲30例

1.充分把握“三个高度” 全面推进全过程人民民主的基层实践 从坚定政治信仰的高度坚持正确方向 从坚定制度自信的高度把握完整链条 从确保落地见效的高度强化组织保障 2. “三个高度”扎实推进安全生产工作 一是着眼大局&#xff0c;高度负责。 二是立足长远&#xff0c;高…

macOS下Django环境搭建

1. macOS升级pip /Library/Developer/CommandLineTools/usr/bin/python3 -m pip install --upgrade pip 2. 卸载Python3.9.5版本 $ sudo rm -rf /usr/local/bin/python3 $ sudo rm -rf /usr/local/bin/pip3 $ sudo rm -rf /Library/Frameworks/Python.framework 3. 安装P…

servlet接受参数和乱码问题

servlet接受参数和乱码问题 1、乱码问题 1&#xff09;get请求 传输参数出现中文乱码问题&#xff1a; 如果还存在问题&#xff1a; 2&#xff09;post请求 传输参数出现中文乱码问题&#xff1a; 2、接受参数&#xff1a; 3、登录注册案例

【瑞吉外卖项目复写】基本部分复写笔记

Day1 瑞吉外卖项目概述 mysql的数据源配置 spring:datasource:druid:driver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://localhost:3306/regie?serverTimezoneAsia/Shanghai&useUnicodetrue&characterEncodingutf-8&zeroDateTimeBehaviorconvertTo…

智慧工地云平台源码,基于微服务+Java+Spring Cloud +UniApp +MySql开发

智慧工地可视化系统利用物联网、人工智能、云计算、大数据、移动互联网等新一代信息技术&#xff0c;通过工地中台、三维建模服务、视频AI分析服务等技术支撑&#xff0c;实现智慧工地高精度动态仿真&#xff0c;趋势分析、预测、模拟&#xff0c;建设智能化、标准化的智慧工地…

MySQL数据库面试题:如何定位慢查询?

MySQL数据库面试题&#xff1a;如何定位慢查询&#xff1f; 面试官&#xff1a;MySQL中&#xff0c;如何定位慢查询&#xff1f; 候选人&#xff1a;嗯~&#xff0c;我们当时做压测的时候有的接口非常的慢&#xff0c;接口的响应时间超过了2秒以上&#xff0c;因为我们当时的系…

【关于反馈电路的放电问题】2022-1-16

缘由关于反馈电路的放电问题 - 电源技术论坛 - 电子技术论坛 - 广受欢迎的专业电子论坛!图中的副绕组反馈给三极管基极&#xff0c;一般都是说通过三极管充电正反馈三极管导通&#xff0c;放电时负反馈三极管截止&#xff0c;负反馈时&#xff0c;电容C3是通过哪个回路放电的呢…

基于Open3D的点云处理15-特征点

Intrinsic shape signatures (ISS) 参考 ISS关键点: 基本原理是避免在沿主要方向表现出类似分布的点上检测关键点&#xff0c;在这些点上无法建立可重复的规范参考框架&#xff0c;因此后续描述阶段很难变得有效。在剩余点中&#xff0c;显着性由最小特征值的大小决定,以便仅包…

2685. 统计完全连通分量的数量;2718. 查询后矩阵的和;1600. 王位继承顺序

2685. 统计完全连通分量的数量 核心思想&#xff1a;枚举所有的连通分量&#xff0c;然后判断这些连通分量是不是完全连通分量&#xff0c;完全连通分量满足边数2e 点数v(v-1)。 2718. 查询后矩阵的和 核心思想&#xff1a;后面的改变更重要&#xff0c;所以我们直接逆向思维…

无脑入门pytorch系列(二)—— torch.mean

本系列教程适用于没有任何pytorch的同学&#xff08;简单的python语法还是要的&#xff09;&#xff0c;从代码的表层出发挖掘代码的深层含义&#xff0c;理解具体的意思和内涵。pytorch的很多函数看着非常简单&#xff0c;但是其中包含了很多内容&#xff0c;不了解其中的意思…

Spring源码——初识Spring容器

Spring源码之工厂&#xff08;容器&#xff09; 为什么把Spring的工厂又叫做容器呢&#xff1f; 工厂的责任是创建对象&#xff0c;但是创建完对象后还要进行存储&#xff08;针对于单例的对象来讲&#xff09;&#xff0c;以供其他地方使用&#xff0c;这就是容器。为了能存…

STL学习

STL 泛化编程template函数模板类模板 iterator迭代器C array(STL array)容器 STL中文名为标准库,是C标准的规定并且提供了自己编写STL的接口&#xff0c;在编译器实现中统一的分成立几个容器头文件和几个其他的头文件来完成数据结构和算法的抽象&#xff0c;现在编译器使用的是…

FDM3D打印系列——超可动可变形机体打印

大家好&#xff0c;我是阿赵。继续来分享一下3D打印的成果。   这次打印的对象不得了&#xff0c;是超时空要塞系列的可变形VF战机。打印完这个模型&#xff0c;绝对是学习到了很多的东西&#xff0c;下面给大家分享一下。 一、成果展示&#xff1a; 不要怀疑&#xff0c;不…

《GPU并行计算与CUDA编程》笔记

第一个GPU程序 #include <stdio.h>__global__ void square(float* d_out,float* d_in){int idx threadIdx.x;float f d_in[idx];d_out[idx] f * f; }int main(int argc,char** argv){const int ARRAY_SIZE 8;const int ARRAY_BYTES ARRAY_SIZE * sizeof(float);// …