计算机网络

本文介绍了计算机网络的基础知识,包括网络分层模型如OSI和TCP/IP,以及应用层、传输层和网络层的常见协议。重点讲解了HTTP和HTTPS协议,包括HTTP状态码,如200、404等,以及SSL/TLS的工作原理和加密机制。此外,还讨论了用户状态的保存方式,如Cookie和Session。
摘要由CSDN通过智能技术生成

目录

计算机网络

网络分层模型

OSI体系结构

TCP/IP体系结构

应用层常见协议

传输层常见协议

网络层常见协议

原理体系结构

三要素

C/S架构

B/S架构

HTTP协议原理

从输入URL到页面展示发生了什么?

HTTP状态码

2xx Success(成功状态码)

3xx Redirection(重定向状态码)

4xx Client Error(客户端错误状态码)

5xx Server Error(服务端错误状态码)

HTTP和HTTPS有什么区别(重要!!!)

SSL/TLS的区别

SSL/TLS工作原理

非对称加密

对称加密

为什么 SSL/TLS 还需要使用非对称加密呢?

补充

HTTP 是不保存状态的协议, 如何保存用户状态?

Cookie 和 Session 有什么区别?

如果没有Cookie的话Session还能用吗?

URI 和 URL 的区别

GET和POST的区别

PING

PING命令的作用

PING命令的工作原理

DNS域名解析


计算机网络

通过传输介质等,将不同的计算机设备互联起来,实现资源共享和数据传输

网络分层模型

OSI体系结构

TCP/IP体系结构

4.应用层

3.传输层

2.网络层

1.网络接口层

应用层常见协议

传输层常见协议

网络层常见协议

原理体系结构

5.应用层

4.运输层:为运行在不同主机上的引用进程提供直接的通信服务

3.网络层:实现网络互联,数据包在各网络之间的传输

2.数据链路层:一个节点到相邻节点的一段物理线路

1.物理层:怎样在连接各种计算机的传输媒体上传输数据比特流

三要素

  • IP地址

  • 端口号

  • 协议tcp/udp

C/S架构

服务器-客户机,即Client-Server结构服务器负责数据的管理,客户机负责完成与用户交互任务

B/S架构

Browser/Server 即浏览器/服务器结构

HTTP协议原理

基于HTTP传输协议(超文本传输协议)客户端与服务器端之间数据传输规则

从输入URL到页面展示发生了什么?

HTTP状态码

2xx Success(成功状态码)

  • 200 OK:请求被成功处理。最常见的

  • 201 Created:请求被成功处理并且在服务端创建了一个新的资源。比如我们通过 POST 请求创建一个新的用户。

  • 202 Accepted:服务端已经接收到了请求,但是还未处理。

  • 204 No Content:服务端已经成功处理了请求,但是没有返回任何内容。

3xx Redirection(重定向状态码)

  • 301 Moved Permanently:资源被永久重定向了。比如你的网站的网址更换了。

  • 302 Found:资源被临时重定向了。比如你的网站的某些资源被暂时转移到另外一个网址。

4xx Client Error(客户端错误状态码)

  • 400 Bad Request:发送的 HTTP 请求存在问题。比如请求参数不合法、请求方法错误。

  • 401 Unauthorized:未认证却请求需要认证之后才能访问的资源。

  • 403 Forbidden:直接拒绝 HTTP 请求,不处理。一般用来针对非法请求。

  • 404 Not Found:你请求的资源未在服务端找到。

5xx Server Error(服务端错误状态码)

  • 500 Internal Server Error:服务端出问题了(通常是服务端出 Bug 了)。

  • 502 Bad Gateway:我们的网关将请求转发到服务端,但是服务端返回的却是一个错误的响应。

HTTP和HTTPS有什么区别(重要!!!)

  • 端口号:HTTP默认是80,HTTPS默认是443

  • URL前缀:HTTP 的 URL 前缀是 http://,HTTPS 的 URL 前缀是 https://

  • 优点:HTTP是扩展性强、速度快、跨平台支持性好。HTTPS是保密性好、信任度高。

  • HTTP协议是以TCP作为底层协议的,HTTPS协议是HTTP的加强安全版本,额外使用了SSL/TLS协议作为加密和安全认证

  • 安全性和资源消耗:HTTP 安全性没有 HTTPS 高,但是 HTTPS 比 HTTP 耗费更多服务器资源。

SSL/TLS的区别

SSL 和 TLS 没有太大的区别。TLS实际上是SSL3.0进一步的升级

SSL/TLS工作原理

非对称加密

SSL/TLS 的核心要素是非对称加密。非对称加密采用两个密钥——一个公钥,一个私钥。在通信时,私钥仅由解密者保存,公钥由任何一个想与解密者通信的发送者(加密者)所知。

简单来说:公钥只能进行加密,要是需要解密只能由拥有私钥者才可以

对称加密

非对称加密设计了较为复杂的数学算法,在实际通信过程中,计算的代价较高,效率太低

因此,SSL/TLS 实际对消息的加密使用的是对称加密。

对称加密:通信双方共享唯一密钥 k,加解密算法已知,加密方利用密钥 k 加密,解密方利用密钥 k 解密,保密性依赖于密钥 k 的保密性。

为什么 SSL/TLS 还需要使用非对称加密呢?

因为对称加密的保密性完全依赖密钥的保密性,在双方通信时,需要商量一个用于对称加密的密钥,网络通信信道是不安全的,传输报文任何人都可以看到,用非对称加密就是对对称加密的密钥进行加密,保护密钥不被窃听

补充

为了公钥的传输的信赖性,第三方机构——证书颁发机构(CA,Certificate Authority),CA是默认受信任的第三方,CA 会给各个服务器颁发证书,证书存储在服务器上,并附有 CA 的电子签名,也就是我们的数字签名技术

数字签名:是 CA 在给服务器颁发证书时,使用散列+加密的组合技术,在证书上盖个章,以此来提供验伪的功能。

当客户端向服务器发送HTTPS请求时,先获取目标服务器的证书,并根据证书上的信息检验证书的合法性,一旦非法,就发生错误;客户端获取了证书后,因为是受信任的第三方机构颁发的,证书上又有公钥的信息,客户端就可以放心的信任证书上的公钥就是目标服务器的公钥。

HTTP 是不保存状态的协议, 如何保存用户状态?

Session机制就是为了保存用户状态,主要通过服务端记录用户状态。

在服务端保存Session的方法很多,常用的就是内存和数据库,Session 存放在服务器端,如何实现 Session 跟踪?大部分情况下,通过在 Cookie 中附加一个 Session ID 来方式来跟踪。

Cookie 和 Session 有什么区别?

Session 的主要作用就是通过服务端记录用户的状态,典型场景是购物车,添加商品到购物车,系统不知道是谁添加的,因为http无状态,服务端给特定的用户创建特定的 Session 之后就可以标识这个用户并且跟踪这个用户了。

Cookie 数据保存在客户端(浏览器端),Session 数据保存在服务器端。相对来说 Session 安全性更高。

如果没有Cookie的话Session还能用吗?

不是没有 Cookie 之后就不能用 Session 了,比如可以将 SessionID 放在请求的 url 里面https://baidu.com/?Session_id=xxx 。这种方案的话可行,但是安全性和用户体验感降低。当然,为了安全你也可以对 SessionID 进行一次加密之后再传入后端。

URI 和 URL 的区别

  • URI(Uniform Resource Identifier) 是统一资源标志符,可以唯一标识一个资源。

  • URL(Uniform Resource Locator) 是统一资源定位符,可以提供该资源的路径。它是一种具体的 URI,即 URL 可以用来标识一个资源,而且还指明了如何 locate 这个资源。

URI像是身份证号,URL更像是家庭住址,不仅唯一标识资源,还提供定位资源位置

GET和POST的区别

  • 语义:GET主要用于查询获取资源,POST主要用于创建和修改资源

  • 幂等:GET请求时幂等的,多次重复请求不会改变资源状态;POST请求不是幂等的,每次执行可能会产生不同的结果影响资源状态

  • 格式:GET请求参数通常放在URL中,POST请求参数通常放在请求体中

  • 长度:GET 请求的 URL 长度受到浏览器和服务器的限制,而 POST 请求的 body 大小则没有明确的限制。

  • 缓存:由于GET请求是幂等的,它可以被浏览器或其他中间节点(代理、网关)缓存起来,提高性能;而POST不适合缓存

  • 安全性:GET和POST如果都用HTTP协议的话,那就都不安全,但是GET比POST更加不安全,因为GET的参数通常在URL中

PING

PING命令的作用

是一种常用的网络诊断工具,经常用来测试网络中主机之间的连通性和网络延迟。

PING命令输出结果包含以下信息:

  • ICMP Echo Request(请求报文)信息:序列号、TTL(Time to Live)值。

  • 目标主机的域名或 IP 地址:输出结果的第一行。

  • 往返时间(RTT,Round-Trip Time):从发送 ICMP请求报文到接收到 ICMP响应报文的总时间,用来衡量网络连接的延迟。

  • 统计结果(Statistics):包括发送的 ICMP 请求数据包数量、接收到的 ICMP 响应数据包数量、丢包率、往返时间(RTT)的最小、平均、最大和标准偏差值。

PING命令的工作原理

PING 基于网络层的 ICMP(Internet Control Message Protocol,互联网控制报文协议),其主要原理就是通过在网络上发送和接收 ICMP 报文实现的。

DNS域名解析

DNS将域名解析为IP地址,也是为了方便记忆

客户端(浏览器)访问一个域名时,如果本地host文件中有该IP地址,则直接返回,本地host文件若没有该IP地址,则会联网的形式去外网查询

为了提高DNS查询效率,域名服务器使用高速缓存,用来存放最近查询过的域名等信息,也要为每项内容设置计时器

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

重开之Java程序员

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值