计算机网络通关学习(一)

news2024/9/19 10:35:45

简介

之前我通过王道的考研课进行了计算机网络的学习,但是在秋招准备过程中发现之前的笔记很多不足,学习的知识不够深入和巩固,所以再重新对《图解HTTP》&《图解TCP/IP》进行深度学习后,总结出了此篇博客,由于内容都是据我而定的,对于我来说以及牢牢记住的知识点就没有进行笔记记录,所以如需深入学习还需要自己独立阅读相关书籍。书籍内容胜过一切八股文和笔记,由浅入深有体系的学习,胜于一切死记硬背。同时在学习协议或者一些专有名词时,和英文原文一起记忆,对我们的学习更有帮助。

HTTP

以下内容是对HTTP的一些学习笔记:

首先我们需要了解到的是HTTP是在应用层使用的一种传输协议,和FTP,DNS应用的位置是一样的,关于计算机网络的分层结构我们在后续TCP/IP协议处在进行解释,这里简单了解即可。

URI和URL

URI:统一资源标志符(Uniform Resource Identifier)

URL:统一资源定位符(Uniform Resource Locater)

即:URI使用字符串标识某一互联网资源,二URL表示资源的地点(互联网上的位置)所以我们说URL是URI的子集。

HTTP定义

  • HTTP协议用于客户端与服务端之间的通信。
  • 通过请求和响应的交换达成通信。
  • HTTP是不保存状态的协议(即:HTTP是无状态协议)

思考:这里对于1,2点,其实没有什么过多的解释了。但是对于第三点,我们需要自己的独立思考参与进来,为什么HTTP是无状态协议呢?HTTP被用于传输,那么我们需要的就是在传递消息的同时尽量减少过程损耗,如果携带状态,那么一定会增加报文长度,所以我们再来参考书籍上的定义就很好理解了:目的是为了更快的处理大量事务,确保协议的可伸缩性。

告知服务器意图的HTTP方法

  • GET:用来请求已经被URI识别的资源,指定的资源服务器解析后返回响应内容。
  • POST:用来传输实体的主体。
  • PUT:传输文件。
  • HEAD:获得报文首部,用于确认URI的有效性及资源更新的日期时间等。
  • DELETE:删除文件,与PUT相反,按照请求的URI删除指定的资源。
  • OPTIONS:询问支持的方法,用来查询针对请求URI指定资源支持的方法。
  • TRACE:追踪路径,让服务器端将之前的请求通过请求通信返回给客户端。
  • CONNECT:要求在于代理服务器建立通信时建立隧道,实现用隧道协议进行TCO通信。(主要用于SSL/TLS协议把通信内容加密后经网络隧道传输。)

注意:有时候面试官会问GET和POST的区别,我们可以由浅入深的进行解答:

  • GET的参数附加在URL中,传递数据可见,并作为URL的一部分发送。
  • POST请求参数放置在请求主体(body)中,不通过URL,而是作为请求的一部分发送到服务器。
  • GET由于数据存储在URL中,所以长度受到限制,通常不超过2048字符。
  • POST理论上不受数据大小限制,因为其在请求体中发送。
  • 多次执行同一个GET请求应该得到同样的结果,并且不会改变服务器的状态。
  • POST请求则是对服务器内容进行修改,多次执行一个POST请求可能会导致不同的结果,甚至改变服务器状态。

但是本质上的区别:

GET产生一个TCP数据包,而POST产生两个TCP数据包。GET请求浏览器会将header和data一起发送给服务器,而POST会先发送header,服务器响应100后,客户端发送data。

HTTP报文

用于HTTP协议交互的信息被称为HTTP报文。(客户端:请求报文。服务端:响应报文)

一般有四种首部:通用首部,请求首部,响应首部,实体首部

对于报文主体我们可以采用编码来提升效率,但是编码过程需要客户端或者服务端计算机完成,会消耗更多的cpu资源。

返回状态码

1xx Informational 接收的请求正在处理

2xx Success 请求正常处理完毕

  • 200 ok 表示从客户端发来的请求在服务器端被正常处理了
  • 204 No Content 表示服务器接收的请求已经成功处理但在返回报文中不含实体部分
  • 206 Partial Content 表示客户端进行了范围请求,而服务器成功只想了这部分的请求

3xx Redirection 需要进行的附加操作以完成请求

  • 301 Moved Dermanenty 永久重定向,表示请求的资源已经被分配了新的URI,以后使用资源现在所指的URI
  • 302 Found 临时重定向 ,该状态码表示请求的资源已经被分配了新的RI,(本次)使用资源现在所指的URI
  • 303 See Other 表示由于请求对应资源存在着一个URI,应使用GET方法定向获取请求资源
  • 304 Not Modified 表示客户端发送附带条件的请求时,服务器允许请求访问资源,但因为发生请求未满足条件情况。

4xx Client Error 服务器无法处理请求

  • 400 Bad Request 表示请求请求报文中存在语法错误
  • 401 Unauthorized 表示发送的请求需要有通过 HTTP BASIC DIGEST 的认证信息
  • 403 Forbiden 表示对请求资源的访问被服务器拒绝了
  • 404 Not Found 表明服务器上无法找到请求的资源

5xx Server Error 服务器处理请求出错

  • 500 Internal Server Error 表明服务器端在执行请求时发生了错误
  • 503 Service Unavailable 表明服务器暂时处于超负载或者正在停机维护,现在无法处理请求

HTTP缺点 --> HTTPS

  1. 通信使用明文(不加密),内容可能会被窃听。
  2. 不验证通信方身份,因此可能遭遇伪装。
  3. 无法验证报文的完整性,所以报文内容可能被篡改。

因此 HTTP+加密+认证+完整性保护 = HTTPS

HTTP并非是一种新的协议,知识HTTP通信接口部分使用SLL(Secure Socket Layer) 和 TLS(Transprot Layer Security) 协议代替而已。

HTTPS混合加密机制

如若想要了解HTTPS如何进行加密,我们就需要了解什么是对称加密和非对称加密。

对称加密

对称加密,或者称之为共享密钥加密。即加密和解密使用同一把钥匙,发送方将信息使用密钥加密后发送到公网中,接收方获取后使用同样的密钥进行解密。

其问题显而易见,就是如何将密钥安全传给对方。但是其优点也很明显,相较于非对称加密而言,他的效率会高出很多。

非对称加密

非对称加密,或者称为公开密钥加密。即每个用户都有一个公钥一个私钥,公钥会放在公网中,发送方使用目标用户的公钥进行加密,然后发送信息,接收方获取到加密信息后使用私钥进行解密。

HTTPS采用的是两者结合的方法:

  • 首先先使用非对称加密,在客户端和服务端间传递对称加密的公钥
  • 然后使用对称加密进行信息传递

但是在非对称加密获取公钥的过程,公钥可能是攻击者伪造的假公钥。于是我们引出了第三方机构的概念。当一个用户注册了私钥和公钥,需要将其公钥交给可信第三方进行证明。然后当另一用户发送消息给当前用户时,另一用户需要将获取的私钥的认证通过非对称加密与第三方机构进行校验,如果为真就会继续使用。

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

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

相关文章

re题(27)BUUFCTF-[MRCTF2020]Transform

BUUCTF在线评测 (buuoj.cn) 先到ida,先看一下字符串 找到主函数 int __cdecl main(int argc, const char **argv, const char **envp) {char Str[104]; // [rsp20h] [rbp-70h] BYREFint j; // [rsp88h] [rbp-8h]int i; // [rsp8Ch] [rbp-4h]sub_402230(argc, arg…

ai扩图用什么软件?探索五大高效工具

Hey朋友们,最近在社交媒体上看到不少超清晰的美图,是不是特别羡慕? 别急,告诉你个秘密武器——ai扩图软件。这些神器能帮你智能扩展图片内容,让每张图都充满细节。 想知道都有哪些好用的ai扩图软件免费吗&#xff1f…

CentOS上使用rpm离线安装Mosquitto(Linux上Mqtt协议调试工具)附资源下载

场景 Windows上Mqtt服务器搭建与使用客户端工具MqttBox进行测试: Windows上Mqtt服务器搭建与使用客户端工具MqttBox进行测试_微软消息队列 测试工具-CSDN博客 Windows服务器上Mqtt服务器EMQX的安装使用: Windows服务器上Mqtt服务器EMQX的安装使用_wi…

Objects as Points基于中心点的目标检测方法CenterNet—CVPR2019

Anchor Free目标检测算法—CenterNet Objects as Points论文解析 Anchor Free和Anchor Base方法的区别在于是否在检测的过程中生成大量的先验框。CenterNet直接预测物体的中心点的位置坐标。 CenterNet本质上类似于一种关键点的识别。识别的是物体的中心点位置。 有了中心点之…

Python青少年简明教程:tkinter库入门

Python青少年简明教程:tkinter库入门 tkinter是Python的标准GUI(图形用户界面)库。它提供了一种快速而简单的方法来创建GUI应用程序。tkinter是Python自带的,无需额外安装,随 Python 安装包一起提供。 在Python 3.x中…

Leetcode—1137. 第 N 个泰波那契数【简单】

2024每日刷题(160) Leetcode—1137. 第 N 个泰波那契数 记忆化搜索实现代码 class Solution { public:int tribonacci(int n) {int zero 0;int one 1;int two 1;if(n 0) {return zero;}if(n 1) {return one;}if(n 2) {return two;}int ans 0;fo…

三重因素,巨人瘦身——从 IBM中国研发部裁员讲起

如何看待IBM中国研发部裁员?近日,IBM中国宣布撤出在华两大研发中心,引发了IT行业对于跨国公司在华研发战略的广泛讨论。这一决定不仅影响了众多IT从业者的职业发展,也让人思考全球化背景下中国IT产业的竞争力和未来发展方向。面对…

手机、平板电脑编程———未来之窗行业应用跨平台架构

一、平板编程优点 1. 便携性强 - 可以随时随地携带平板进行编程,不受地点限制,方便在旅行、出差或休息时间进行学习和开发。 2. 直观的触摸操作 - 利用触摸屏幕进行代码编辑、缩放、拖动等操作,提供了一种直观和自然的交互方式。 …

TypeScript:高级类型

一、交叉类型(Intersection Types) 交叉类型是将多个类型合并为一个类型。 这让我们可以把现有的多种类型叠加到一起成为一种类型,它包含了所需的所有类型的特性。 例如, Person & Serializable & Loggable同时是 Person …

建模杂谈系列256 规则函数化改造

说明 之前尝试用FastAPI来构造规则,碰到的问题是由于请求量过大(TPS > 1000), 从而导致微服务端口资源耗尽。所以现在的point是: 1 如何使用函数来替代微服务(同时要保留使用微服务的优点)2 进一步抽象并规范规则的执行3 等效合并规则的方法 内容 0 机制讨论…

Vue2源码解读

vue源码_哔哩哔哩_bilibili 1.Vue源码路径目录解读 Vue2源码的路径目录被设计得非常清晰,每个文件夹都承担着特定的职责和功能。以下是这些主要文件夹(compiler、core、platform、server、sfc、shared)的详细解读: 1. compiler …

LLM大模型部署实战指南:Ollama简化流程,OpenLLM灵活部署,LocalAI本地优化,Dify赋能应用开发

1. Ollama 部署的本地模型(🔺) Ollama 是一个开源框架,专为在本地机器上便捷部署和运行大型语言模型(LLM)而设计。,这是 Ollama 的官网地址:https://ollama.com/ 以下是其主要特点和功能概述: …

VLMEvalKit 评测实践:InternVL2 VS Qwen2VL

一、InternVL2简介 InternVL2是由上海人工智能实验室OpenGVLab发布的一款多模态大模型,其中文名称为“书生万象”。该模型在多学科问答(MMMU)任务上表现出色,成为国内首个在该任务上性能突破60的模型,被誉为开源多模态…

k8s 微服务 ingress-nginx 金丝雀发布

目录 一 什么是微服务 二 微服务的类型 三 ipvs模式 3.1 ipvs模式配置方式 四 微服务类型详解 4.1 clusterip 4.2 ClusterIP中的特殊模式headless 4.3 nodeport 4.4 loadbalancer 4.5 metalLB 4.6 externalname 五 Ingress-nginx 5.1 ingress-nginx功能 5.2 部署…

5. Python之数据类型

Python数据类型有数值型,字符串型,布尔型等等 内置函数type(),可以查看变量的数据类型 。 一、数值类型 整数(没有小数部分,包含正整数,负整数,0,默认为十进制数)&…

C++ 类域+类的对象大小

个人主页:Jason_from_China-CSDN博客 所属栏目:C系统性学习_Jason_from_China的博客-CSDN博客 所属栏目:C知识点的补充_Jason_from_China的博客-CSDN博客 概念概述 类定义了一个新的作用域,类的所有成员都在类的作用域中&#xff…

华为杯数学建模资料大全、入门指导攻略、获奖数据分析、选题建议

这里收集的资料个人认为已经非常全也非常值了,这么多资料收集成本真的不低 数学建模比赛资料部分(需要私聊找我) 华为杯创办以来每一年的比赛题目原题(包括A到F题)华为杯每年每种题目的优秀获奖作品论文 近几年的华…

2022高教社杯全国大学生数学建模竞赛C题 问题一(2) Python代码演示

目录 1.2 结合玻璃的类型,分析文物样品表面有无风化化学成分含量的统计规律数据预处理绘图热力图相关系数图百分比条形图箱线图小提琴图直方图KED图描述性统计分析偏度系数峰度系数其它统计量1.2 结合玻璃的类型,分析文物样品表面有无风化化学成分含量的统计规律 数据预处理 …

回归预测|基于鲸鱼优化随机森林数据的数据回归预测Matlab程序 多特征输入单输出WOA-RF

回归预测|基于鲸鱼优化随机森林数据的数据回归预测Matlab程序 多特征输入单输出WOA-RF 文章目录 一、基本原理鲸鱼优化算法(WOA)随机森林(RF)WOA-RF的结合总结 二、实验结果三、核心代码四、代码获取五、总结 一、基本原理 WOA-R…

服务器断电重启后报XFS文件系统错误 XFS (dm-0)_ Metadata I_O error

一、现象 服务器被意外断电,导致重启机器后报错,系统错误 XFS (dm-0): Metadata I/O error 二、解决方法 2.1 重启服务器,进入单用户模式 服务器系统为: centos7.9 开机按e 定位到ro 然后修改ro为rw(“rw init/sysroot/bin/sh”…