当前位置: 首页 > news >正文

计算机网络相关

OSI七层模型

各层功能:

TCP/IP四层模型

应用层

传输层

网络层

网络接口层

访问一个URL的全过程

在浏览器中输入指定网页的 URL。

浏览器通过 DNS 协议,获取域名对应的 IP 地址。

浏览器根据 IP 地址和端口号,向目标服务器发起一个 TCP 连接请求。

浏览器在 TCP 连接上,向服务器发送一个 HTTP 请求报文,请求获取网页的内容。

服务器收到 HTTP 请求报文后,处理请求,并返回 HTTP 响应报文给浏览器。

浏览器收到 HTTP 响应报文后,解析响应体中的 HTML 代码,渲染网页的结构和样式,同时根据 HTML 中的其他资源的 URL(如图片、CSS、JS 等),再次发起 HTTP 请求,获取这些资源的内容,直到网页完全加载显示。

浏览器在不需要和服务器通信时,可以主动关闭 TCP 连接,或者等待服务器的关闭请求。

http和https的区别

HTTP 明文传输,数据都是未加密的,安全性较差,HTTPS(SSL+HTTP) 数据传输过程是加密的,安全性较好。

使用 HTTPS 协议需要到 CA(Certificate Authority,数字证书认证机构) 申请证书,一般免费证书较少,因而需要一定费用。证书颁发机构如:Symantec、Comodo、GoDaddy 和 GlobalSign 等。

HTTP 页面响应速度比 HTTPS 快,主要是因为 HTTP 使用 TCP 三次握手建立连接,客户端和服务器需要交换 3 个包,而 HTTPS除了 TCP 的三个包,还要加上 ssl 握手需要的 9 个包,所以一共是 12 个包。

http 和 https 使用的是完全不同的连接方式,用的端口也不一样,前者是 80,后者是 443

HTTPS 其实就是建构在 SSL/TLS 之上的 HTTP 协议,所以,要比较 HTTPS 比 HTTP 要更耗费服务器资源。

https加密方法

对称式加密

非对称式加密

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

三次握手和四次挥手

TCP怎么保障可靠传输

基于数据块传输:应用数据被分割成 TCP 认为最适合发送的数据块,再传输给网络层,数据块被称为报文段或段。

对失序数据包重新排序以及去重:TCP 为了保证不发生丢包,就给每个包一个序列号,有了序列号能够将接收到的数据根据序列号排序,并且去掉重复序列号的数据就可以实现数据包去重。

校验和 : TCP 将保持它首部和数据的检验和。这是一个端到端的检验和,目的是检测数据在传输过程中的任何变化。如果收到段的检验和有差错,TCP 将丢弃这个报文段和不确认收到此报文段。

重传机制 : 在数据包丢失或延迟的情况下,重新发送数据包,直到收到对方的确认应答(ACK)。TCP 重传机制主要有:基于计时器的重传(也就是超时重传)、快速重传(基于接收端的反馈信息来引发重传)、SACK(在快速重传的基础上,返回最近收到的报文段的序列号范围,这样客户端就知道,哪些数据包已经到达服务器了)、D-SACK(重复 SACK,在 SACK 的基础上,额外携带信息,告知发送方有哪些数据包自己重复接收了)。

流量控制 : TCP 连接的每一方都有固定大小的缓冲空间,TCP 的接收端只允许发送端发送接收端缓冲区能接纳的数据。当接收方来不及处理发送方的数据,能提示发送方降低发送的速率,防止包丢失。TCP 使用的流量控制协议是可变大小的滑动窗口协议(TCP 利用滑动窗口实现流量控制)。

拥塞控制 : 当网络拥塞时,减少数据的发送。TCP 在发送数据的时候,需要考虑两个因素:一是接收方的接收能力,二是网络的拥塞程度。接收方的接收能力由滑动窗口表示,表示接收方还有多少缓冲区可以用来接收数据。网络的拥塞程度由拥塞窗口表示,它是发送方根据网络状况自己维护的一个值,表示发送方认为可以在网络中传输的数据量。发送方发送数据的大小是滑动窗口和拥塞窗口的最小值,这样可以保证发送方既不会超过接收方的接收能力,也不会造成网络的过度拥塞。

HTTP常见状态码

相关文章:

  • 实战打靶集锦-027-SoSimple1
  • 【Redis】Redis常见原理和数据结构
  • AI开源概览及工具使用
  • PHP全新美化广告横幅在线制作源码
  • Qt-QDialog非模态置于窗口之上且操作主窗口不隐藏dialog的方法
  • npm run dev命令的执行顺序和原理
  • 【WEEK4】 【DAY1】整合SSM框架之基本环境搭建—第二部分【中文版】
  • 如何实现跨标签页通讯
  • Windows10无盘母盘制作-以云更新为例
  • Request failed with status code 504,Gateway time out
  • Spring Data访问Elasticsearch----CDI集成
  • 测试平台——前端框架
  • Springboot整合Mybatis的详细案例+图解+分析(一)
  • 什么是通用人工智能(AGI)以及为什么它还没有到来:给AI爱好者的现实检查
  • Gradle
  • 【剑指offer】让抽象问题具体化
  • CSS3 变换
  • Netty源码解析1-Buffer
  • SpringCloud集成分布式事务LCN (一)
  • vue2.0项目引入element-ui
  • XForms - 更强大的Form
  • 初识 webpack
  • 第十八天-企业应用架构模式-基本模式
  • 动态规划入门(以爬楼梯为例)
  • 前端技术周刊 2019-02-11 Serverless
  • 用Visual Studio开发以太坊智能合约
  • 用简单代码看卷积组块发展
  • Mac 上flink的安装与启动
  • 测评:对于写作的人来说,Markdown是你最好的朋友 ...
  • 国内唯一,阿里云入选全球区块链云服务报告,领先AWS、Google ...
  • ​软考-高级-系统架构设计师教程(清华第2版)【第20章 系统架构设计师论文写作要点(P717~728)-思维导图】​
  • %3cscript放入php,跟bWAPP学WEB安全(PHP代码)--XSS跨站脚本攻击
  • (06)Hive——正则表达式
  • (1)STL算法之遍历容器
  • (JS基础)String 类型
  • (二)Linux——Linux常用指令
  • (分享)自己整理的一些简单awk实用语句
  • (附源码)计算机毕业设计ssm-Java网名推荐系统
  • (黑马C++)L06 重载与继承
  • (每日持续更新)jdk api之FileReader基础、应用、实战
  • (数据结构)顺序表的定义
  • (转)AS3正则:元子符,元序列,标志,数量表达符
  • (转)树状数组
  • (转载)OpenStack Hacker养成指南
  • .dwp和.webpart的区别
  • .NET WebClient 类下载部分文件会错误?可能是解压缩的锅
  • .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况
  • .NET(C#) Internals: as a developer, .net framework in my eyes
  • .NET设计模式(8):适配器模式(Adapter Pattern)
  • .net图片验证码生成、点击刷新及验证输入是否正确
  • .NET中的Event与Delegates,从Publisher到Subscriber的衔接!
  • @Transactional 详解
  • [Angular] 笔记 20:NgContent
  • [APIO2015]巴厘岛的雕塑
  • [Ariticle] 厚黑之道 一 小狐狸听故事