做网站犯法/长春关键词优化排名

做网站犯法,长春关键词优化排名,网站开发需求分析怎么写,wordpress换行符文章目录 1. TCP和UDP的区别2. 对http接口解释3. Cookie和Session的区别4. http和https的区别5. 智能指针6.断点续传 1. TCP和UDP的区别 tcp的特点: 面向连接,可靠性高,全双工,面向字节流udp特点:无连接,不…

文章目录

      • 1. TCP和UDP的区别
      • 2. 对http接口解释
      • 3. Cookie和Session的区别
      • 4. http和https的区别
      • 5. 智能指针
      • 6.断点续传

1. TCP和UDP的区别

  • tcp的特点: 面向连接,可靠性高,全双工,面向字节流
  • udp特点:无连接,不可靠(但是对实时性要求高),头部开销少,

主要区别:连接性与可靠性 : tcp是面向连接的协议,提供可靠的数据传输服务; 而udp是无连接的,不可靠
头部开销与传输效率 : tcp的头部开销大,包含更多控制信息,传输效率低 ; udp的头部开销少,传输效率高
应用场景 : tcp适用于可靠性的场景,文件传输,电子邮件等; udp适用于实时传输,视频流,Voip(VoIP(互联网电话协议)是一种电话技术,允许您使用互联网而不是传统电话线拨打和接听电话。)等

视频音频适用于UDP协议

  • 实时性,对数据丢失不敏感,避免TCP的拥塞控制对实时性的影响。
  • 视频音频对于实时性的要求很高,UDP的报头只有8个字节,比TCP少了12个字节,这使得UDP在传输数据时的开销小,效率高,还不用建立连接。 如果因为建立连接,重传等操作导致延迟过大,会影响用户体验
  • 视频中的一帧画面的画面丢失,音频的短暂杂音,影响体验很小,TCP拥有拥塞控制机制,当网络拥塞的时候,会降低发送报文的频率,这样会影响实时性。让TCP去参与网络疏导

2. 对http接口解释

HTTP工作原理

  • HTTP协议定义Web客户端如何从Web服务器请求Web页面,以及服务器如何把Web页面传送给客户端。HTTP协议采用了请求/响应模型。
  • 客户端向服务器发送一个请求报文,请求报文包含请求的方法、URL、协议版本、请求头部和请求数据。服务器以一个状态行作为响应,响应的内容包括协议的版本、成功或者错误代码、服务器信息、响应头部和响应数据。

以下是 HTTP 请求/响应的步骤:

  1. 客户端连接到Web服务器
    一个HTTP客户端,通常是浏览器,与Web服务器的HTTP端口(默认为80)建立一个TCP套接字连接。
    例如,http://www.baidu.com。

  2. 发送HTTP请求
    通过TCP套接字,客户端向Web服务器发送一个文本的请求报文,一个请求报文由请求行、请求头部、空行和请求数据4部分组成。

  3. 服务器接受请求并返回HTTP响应
    Web服务器解析请求,定位请求资源。服务器将资源复本写到TCP套接字,由客户端读取。一个响应由状态行、响应头部、空行和响应数据4部分组成。

  4. 释放连接TCP连接
    若connection 模式为close,则服务器主动关闭TCP连接,客户端被动关闭连接,释放TCP连接;若connection 模式为keepalive,则该连接会保持一段时间,在该时间内可以继续接收请求;

  5. 客户端浏览器解析HTML内容
    客户端浏览器首先解析状态行,查看表明请求是否成功的状态代码。然后解析每一个响应头,响应头告知以下为若干字节的HTML文档和文档的字符集。客户端浏览器读取响应数据HTML,根据HTML的语法对其进行格式化,并在浏览器窗口中显示。

例如:在浏览器地址栏键入URL,按下回车之后会经历以下流程:

  1. 域名解析得到目标服务器的ip地址,ip地址底层基于tcp,要先三次握手建立连接,在套接字就是connect,获取成功后在应用层由浏览器构建request,http请求构建http请求行,请求报头,空行,必要时有正文,
  2. 然后把http请求通过系统调用接口发送给对方,对方收到了http请求后,会对http请求进行 比如面向字节流以及粘包问题,把报文解出来,然后做序列化得到http相关字段以及请求url,然后读取url所对应的资源,都有就构建响应报头,状态行,正文,然后把整个信息构建成一个response, response通过系统调用发送给客户端,
  3. 客户端在对response解决粘包问题把报文和报文之间分开,通过反序列化提取正文,正文可以是网页或者图片,由网页或图片被浏览器解释渲染

更细一点就是 : 在双方操作系统中,发数据并不是把数据发送给对方,也不是发送到网络,而是拷贝到操作系统底层的tcp发送缓冲区,所以tcp传输控制的时候就可以根据流量控制,拥塞控制,捎带应答,快重传,各种可靠性策略,效率策略把数据发送给对方,再往下谈,滑动窗口,每一次对应的数据段也不直接发送给对方,而是交给了ip报文,在这里也添加了自己的ip报头,这里也有分片和组装的问题…

HTTP请求方法

在这里插入图片描述

HTTP状态码

在这里插入图片描述

3. Cookie和Session的区别

  1. cookie常存储在浏览器或者本地,session只能在服务器
  2. cookie只能存储string对象,session可以存储任意的jave对象
  3. session更安全,但是session过多的话,会造成服务器压力问题
  4. 单个Cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个Cookie,Session是没有大小限制和服务器的内存大小有关。
  5. 更详细看这篇文章彻底了解Cookie和Session的区别(面试)

4. http和https的区别

  • http的post和get都是没有加密的,都可以被抓包软件抓到
  • https就是在应用层和传输层进行加密(SSL&TLS,SSL/TLS是用于在计算机网络上进行安全通信的协议。)

1、HTTPS 协议需要到 CA (Certificate Authority,证书颁发机构)申请证书,一般免费证书较少,因而需要一定费用。(以前的网易官网是http,而网易邮箱是 https 。)

2、HTTP 是超文本传输协议,信息是明文传输,HTTPS 则是具有安全性的 SSL 加密传输协议。

3、HTTP 和 HTTPS 使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。

4、HTTP 的连接很简单,是无状态的。HTTPS 协议是由 SSL+HTTP 协议构建的可进行加密传输、身份认证的网络协议,比 HTTP 协议安全。(无状态的意思是其数据包的发送、传输和接收都是相互独立的。无连接的意思是指通信双方都不长久的维持对方的任何信息。)

TLS握手过程 : 1. 客户端和服务器商定通信所使用的TLS版本(双发互发信息,密码组合,证书) 2. 确定双方要使用的密码组合 3.客户端通过服务器的公钥和证书验证服务器身份 4. 生成会话密钥用于结束后的对称加密(双方互发加密的finished信号)

5. 智能指针

原理:

  1. 在对象构造时获取资源,在对象析构的时候释放资源,利用对象的生命周期来控制程序资源,即RALL特性
  2. *和 ->进行重载,使得该对象具有像指针一样的行为
  3. 智能指针的拷贝问题 , 为什么要解决 : SmartPtr sp1(new int); SmartPtr sp2(sp1); //拷贝构造 对内置类型浅拷贝,构造sp2后会让两者管理同一片空间,析构会导致空间被释放两次(赋值构造也是如此)
  • auto_ptr : 最早的智能指针,他只会允许统一时间只有一个智能指针指向同一个对象,当发生赋值或者拷贝的话,所有权就会转移,就相当于该指针不在管理对象了。
    所有权转移的实现是在析构和赋值构造中释放自己管理的对象,然后将管理权赋值给接管自己的对象

  • unique_ptr(防拷贝 = delete) : 和auto_ptr一样,但是他不允许赋值和拷贝操作。会将拷贝构造函数和赋值重载函数禁用。

  • shared_ptr : 是共享所有权的一个指针,他允许多个智能指针指向同一个对象,他内部使用引用计数来记录个数,当引用计数为0的时候,才会去释放指向的对象资源。

    增加一个内部成员变量int* _pcount;,表明引用计数个数 ,不能被定义为int类型是因为不能让每个shared_ptr对象有一个自己的count的成员变量, 不能为静态,不能让所有对象拥有同一个count成员变量
    

注意 :

  1. 存在线程安全问题:多个线程可能会对同一个引用进行自增或自减操作,而自增或自减操作都不是原子操作,需要加锁进行保护。
  2. 存在循环引用问题 : 有两个结点 :node1->_next = node2; node2->_prev = node1; node1的释放取决于node2中的prev成员,node2的释放取决于node1的next成员。
    解决方法 : 将ListNode中的成员变量std::shared_ptr _next; 变为 std::weak_ptr _next;
  • weak_ptr : 大多数是用来配合shared_ptr进行使用的,解决了shared_ptr的循环引用的问题,他没有对象的管理权,不参与引用计数的增减。

6.断点续传

什么是断点续传

断点续传技术(Resumable Downloads 或 Resume Downloads)是一种在网络文件传输中常用的技术,它允许在文件传输过程中,如果因为某种原因(如网络中断、设备故障、用户暂停等)导致传输中断,之后可以从上次中断的地方继续传输文件,而不是从头开始重新传输整个文件。这种技术可以显著提高文件传输的效率和用户体验,特别是在传输大文件或在网络条件不稳定的环境中。

断点续传技术的实现通常依赖于客户端和服务器之间的协议支持,如HTTP/1.1中的Range和Content-Range头部字段。客户端会记录已经成功传输的文件部分(通常是字节范围),并在中断后重新发送带有Range头部的请求,指定从上次中断的点开始传输。服务器则根据这个请求返回文件剩余部分的数据,并在响应中包含Content-Range头部以告知客户端实际返回的数据范围。

应用场景及原理

大文件下载; 视频播放;在线更新;远程备份;.文件上传

综上所述,断点续传技术广泛应用于需要高效、可靠文件传输的各种场景,特别是在网络条件不稳定或文件大小较大的情况下。通过断点续传技术,用户可以更好地利用网络资源,提高文件传输的效率和用户体验。

  1. 关于 Range头部字段:
  • 作用:Range头部字段用于HTTP请求中,指定服务器应该返回文件的哪一部分。这使得客户端能够请求文件的特定片段,而不是整个文件。
  • 格式:Range: bytes=start-end,其中start是请求的第一个字节的偏移量(从0开始),end是请求的最后一个字节的偏移量。如果end被省略,则表示请求从start开始到文件末尾的所有字节。
  • 使用场景:当客户端希望继续之前中断的下载时,它会发送一个带有Range头部的请求,指定从上次中断的点开始请求数据。
  1. Content-Range头部字段
  • 作用:Content-Range头部字段用于HTTP响应中,告知客户端实际返回的字节范围以及整个实体的总长度。
  • 格式:Content-Range: bytes start-end/total,其中start是返回的第一个字节的偏移量,end是返回的最后一个字节的偏移量,total是整个实体的总长度(字节数)。
  • 使用场景:服务器在响应带有Range头部的请求时,会使用Content-Range头部来告知客户端返回的数据范围以及整个文件的大小。

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

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

相关文章

Matlab中快速查找元素索引号

1、背景介绍 在算法设计过程中,有时候需要从一维/二维数组中,快速查找是否某个元素,以及该元素所在的位置。如一维矩阵[1 2 3 4 5 6 6 7 8]所示,元素6所在的位置为6 7。 2、函数测试 matlab中函数find()可以快速查找到指定元素所…

【DuodooTEKr 】多度科技 以开源之力,驱动企业数字化转型

多度科技 背景 / Background 在全球产业链重构与国内经济双循环的浪潮下,中国制造业与贸易企业正面临数字化升级的迫切需求。开源技术作为数字化转型的基石,不仅能打破技术壁垒、降低企业成本,更能通过协作创新加速产业智能化进程。 多度科技…

【HarmonyOS Next】鸿蒙应用故障处理思路详解

【HarmonyOS Next】鸿蒙应用崩溃处理思路详解 一、崩溃问题发现后定位 1. 崩溃现象: 常见的崩溃问题表现为,应用操作后白屏闪退,或者应用显示无响应卡死。 2.定位问题: 发现崩溃后,我们首先需要了解复现步骤&#x…

linunx ubuntu24.04.02装libfuse2导致无法开机进不了桌面解决办法

osu.appimage运行需要libfuse2 然后我就下了fuse,打了两把第二天无法开机 这样是不能开机的 这样是可以开机的 解决办法一:玩星火商店的osu,好了问题解决 解决办法二: 在这个页面 ctrl alt f2进入tty6 sudo apt install ubuntu-desktop 进…

C++蓝桥杯基础篇(十一)

片头 嗨~小伙伴们,大家好!今天我们来学习C蓝桥杯基础篇(十一),学习类,结构体,指针相关知识,准备好了吗?咱们开始咯~ 一、类与结构体 类的定义:在C中&#x…

css中实现border距离视图左右两侧有距离

首先看效果图 再看css是如何实现 <!DOCTYPE html> <html><head><meta charset"utf-8"><title></title><style>.main {background-color: aqua;display: block;width: 300px;padding: 0px 32px;box-sizing: border-box;}/…

Tweak Power:全方位电脑系统优化的高效工具

在日常使用电脑时&#xff0c;系统性能的下降、垃圾文件的堆积以及硬盘的老化等问题常常困扰着用户。为了提升电脑性能、优化系统运行&#xff0c;许多人会选择系统优化工具。然而&#xff0c;国内一些系统优化软件常常因为广告过多或功能冗杂而让人望而却步。此时&#xff0c;…

深入浅出Bearer Token:解析工作原理及其在Vue、Uni-app与Java中的实现Demo

目录 前言1. 基本知识2. Demo3. 实战 前言 &#x1f91f; 找工作&#xff0c;来万码优才&#xff1a;&#x1f449; #小程序://万码优才/r6rqmzDaXpYkJZF 1. 基本知识 Bearer Token是一种基于Token的认证机制&#xff0c;用于在HTTP请求中传递用户的身份信息 应用于RESTful A…

kubernetes——part3-5 核心概念 Service

一、 service作用 使用kubernetes集群运行工作负载时&#xff0c;由于Pod经常处于用后即焚状态&#xff0c;Pod经常被重新生成&#xff0c;因此Pod对应的IP地址也会经常变化&#xff0c;导致无法直接访问Pod提供的服务&#xff0c;Kubernetes中使用了Service来解决这一问题&am…

从零开始 | C语言基础刷题DAY1

❤个人主页&#xff1a;折枝寄北的博客 DAY1[2025.3.11] 1. 求两个数的较大值2.从键盘输入的两个数的大小关系3.一个整数的奇偶性&#xff0c;请判断4. 考试分数是否通过5.考试成绩是否完美&#xff0c;请判断 1. 求两个数的较大值 题目&#xff1a; 写一个函数求两个整数的较…

《苍穹外卖》SpringBoot后端开发项目核心知识点整理(DAY1 to DAY3)

目录 一、在本地部署并启动Nginx服务1. 解压Nginx压缩包2. 启动Nginx服务3. 验证Nginx是否启动成功&#xff1a; 二、导入接口文档1. 黑马程序员提供的YApi平台2. YApi Pro平台3. 推荐工具&#xff1a;Apifox 三、Swagger1. 常用注解1.1 Api与ApiModel1.2 ApiModelProperty与Ap…

大数据hadoop课程笔记

1.课程导入 柯洁 Alpha Go是人工智能领域的里程碑。 深度学习 大模型deepseek chatgpt 大模型 和 大数据 之间有着非常紧密的关系。可以说&#xff0c;大数据是大模型发展的基石&#xff0c;而大模型是大数据价值挖掘的重要工具。 https://youtu.be/nN-VacxHUH8?sifj7Ltk…

架构学习第八周--Kubernetes博客搭建

目录 一、整体架构 二、部署MySQL主从 三、部署Redis哨兵 四、部署WordPress 五、注意事项 一、整体架构 本项目为在一主三从的Kubernetes集群上部署WordPress博客。因为WordPress部分容器版本自行集成Apache和PHP服务&#xff0c;因此在Kubernetes上部署WordPress只需提供…

网络安全之tcpdump工具

引言 wireshark是一款非常不错的抓包软件&#xff0c;在图形化界面占绝对统治地位&#xff1b;尽管其在字符界面下有些许选项可供使用&#xff0c;但终究不太方便&#xff0c;下面我再介绍一款NB的终端抓包工具 tcpdump 1、混杂模式 linux的网卡有混杂模式一说&#xff0c;当开…

electron+vue+webview内嵌网页并注入js

vue内嵌网页可以使用iframe实现内嵌网页&#xff0c;但是只能通过postMessage间接通信&#xff0c;在electron环境下&#xff0c;vue可以直接使用webview来内嵌网页&#xff0c;支持 executeJavaScript、postMessage、send 等丰富的通信机制。 使用 webview的优势 性能更佳&…

leetcode日记(95)将有序数组转换为二叉搜索树

很简单&#xff0c;感觉自己越来越适应数据结构题目了…… /*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode() : val(0), left(nullptr), right(nullptr) {}* TreeNode(int x) : va…

【threejs实战教程一】初识Three.js,场景Scene、相机Camera、渲染器Renderer

Three.js是一个基于WebGL的JavaScript 3D图形库&#xff0c;用于在浏览器中创建和显示3D内容 Three.js中最基础的三个关键要素就是场景Scene、相机Camera、渲染器Renderer 通俗一点理解&#xff0c;场景就是我们生活中一个具体的场景&#xff0c;比如自然环境中的一栋建筑&…

木马查杀之AST初识篇

一、AST 定义 抽象语法树&#xff08;Abstract Syntax Tree&#xff0c;AST&#xff09;是源代码的一种抽象表示形式。它以树状结构描述源代码的语法构成&#xff0c;树上的每个节点都对应源代码中的一个语法结构或元素&#xff0c;像变量声明、函数调用、表达式等。通过这种结…

vscode接入DeepSeek 免费送2000 万 Tokens 解决DeepSeek无法充值问题

1. 在vscode中安装插件 Cline 2.打开硅基流动官网 3. 注册并登陆&#xff0c;邀请码 WpcqcXMs 4.登录后新建秘钥 5. 在vscode中配置cline (1) API Provider 选择 OpenAI Compatible &#xff1b; (2) Base URL设置为 https://api.siliconflow.cn](https://api.siliconfl…

如何在保持安全/合规的同时更快地构建应用程序:DevOps 指南

随着敏捷思维方式的兴起&#xff0c;开发和 DevOps 团队都面临着持续的压力&#xff0c;他们需要以迭代方式缩短发布周期并加快部署速度&#xff0c;以满足不断增长的客户期望。随着这种对速度的追求越来越强烈&#xff0c;维护安全性和合规性标准的复杂性也随之增加。 当今 D…