TCP、UDP、HTTPS、HTTP

news2024/9/20 16:40:08

前言

                                                                OSI七层网络

名称解释协议
应用层定义了各种应用协议的数据规范

HTTP、HTTPS、SSL

FTP、DNS

TFTP、SMTP

表示层不同系统之间通信
会话层断点续传
传输层

一个电脑有许多端口,根据端口找到发送方与接收方

确保数据包完整性

TCP、UDP
网络层

ARP协议:通过IP地址获取对方的MAC地址

IP协议:逻辑寻址 和 路由

静态路由 与 动态路由 协议

ARP

IP

动态:RIP,OSPF,BGP

数据链路层

帧:将比特流8位一组发送

MAC地址:计算机的唯一标识ID

物理层传输比特流(01串)

一、TCP协议

        TCP报文 = 报文头 + 数据部分

TCP报文头格式

 ACK :确认位(这条消息是一条回复确认消息,确认号是有意义的)

 RST :重置位(TCP连接中出现了错误,主机服务器崩溃,要求释放本连接

 SYN :同部位(表示这条消息是一条 1.发起连接 2.确认接受连接 的消息)

 FIN : 终止位(表示本次报文发送结束了,要释放这个连接,TCP四次挥手时)

ack确认号:告知对方,希望下次收到的包的序列号是多少

1.1 三次握手

        客户端和服务器基于TCP协议的连接过程为 三次握手。


 

1.2 四次挥手

1.3 特点

        TCP协议是建立连接的,是一种可靠的连接。

        一段时间内如果没有收到正确的回执信息和确认号,则会重传

        相比于UDP协议,它可以保证数据传输拥有更好的安全性和完整性。

        相比于UDP协议,他的开销更大,速度更慢

        HTTPHTTPS就是基于TCP的。

 二、UDP协议

        UDP报文 = 报文头 + 数据部分

UDP报文头
长度名称解释
16位源端口号

表示发送端的端口号。

如果发送端不需要源端口号,这个字段可以设置为0

16位目标端口号表示接收端的端口号
16位UDP报文长度

包括头部和数据部分的总长度

最小值为8字节(仅头部)

16位UDP校验和

用于检验UDP头部和数据部分是否在传输过程中发生了错误

检验和字段是可选的,但在IPv6中是强制要求

2.1 特点

        UDP协议是不建立连接的,因此尝尝出现丢包的现象,是不可靠的。

        相比于TCP协议,它的发送速度更快。(流媒体、游戏、IP电话、流量大的需求)

        相比于TCP协议,它的资源消耗小

        DNS域名解析协议就是基于UDP的。

三、HTTP协议

        HTTP(Hyper Text Transfor Protocol)为超文本传输协议

3.1 特点

        HTTP协议基于TCP协议,默认端口为 80 可靠协议

        HTTP协议用于规定客户端服务器数据传输格式

        HTTP协议是一个基于请求响应模式的、无状态的、无连接应用层协议

        HTTP协议发送的报文都是明文(未加密)的

3.2 请求

请求报文客户端服务器 发送的请求信息

常见的请求方法

格式:(分为四部分)

        <1> 请求行:请求方法 + URL(统一资源定位符) + HTTP协议版本号

GET /teams HTTP/1.1

        <2> 请求头部:名称 :

 

常 用 需 要 掌 握 的 请 求
User-Agent客户端类型
Accept客户端可以识别的内容类型
Host

请求的主机名

(不一定是IP地址,也可以是域名)

Cookie

与服务器做交互,用于保持会话

(用户名 + 密码)

Content-type请求体的内容格式
Connection

值一般为keep-alive,保持TCP连接不关闭

(但不会长久保持连接)

         <3> 空一行:就是空出一行,表示请求头部结束了。

         <4> 请求体:请求消息的正文内容。

                        注意:不是每个请求都有请求体,比如 GET请求一般没有请求体。

3.3 响应

响应报文服务器 客户端 发送的响应信息 

响应格式

        <1> 响应行:HTTP版本号 + 状态码 + 解释状态码

HTTP/1.1 200 OK
常用状态码解释
1XX请求正在处理中
2XX

请求成功处理完毕

200:请求成功

3XX

重定向(转移到另外一个url上)

302:重定向

304:缓存(未改动)

4XX

客户端导致的错误

5XX服务器导致的错误

        <2> 相应头部:名称 : 值  (结束后也要额外空一行,表示头部结束)

常 用 需 要 掌 握
Server服务器软件信息
Data报文的响应时间
Expires缓存的过期时间
Set-Cookies通过服务器返回的文本设置cookies
Connection

值一般为keep-alive,保持TCP连接不关闭

(但不会长久保持连接)

(服务器可设置 --无连接)

Location重定向的新URL

         <3> 响应体:响应的正文内容

3.4 无连接

HTTP协议是一种无连接应用协议

       1. 限制每次连接只处理一个请求

       2. 服务器处理完客户端的请求,并受到客户端的应答后,立即断开连接 

设计原因:最早是为了应对单个用户请求间歇性大的问题,但随着网页越来越复杂,因此添加

                  了connection字段(设置connection : keep-alive)。

使用方法:1.开启:在请求中设置 connection : keep-alive 请求保持长连接 (HTTP1.1默认打开

                  2.关闭:在请求头中设置 connection : close  关闭长连接

                  3.设置连接时间:

                            在请求头中设置 Keep-Alive : timeout = 5, max = 1000

                                        timeout:超时时间(秒),超过这个时间断开连接

                                        max:最多连接次数,超过这个次数断开连接

3.5 无状态

HTTP是一种无状态应用协议

        1. 服务器不知道客户端是什么状态

        2.每个请求都是独立的,服务器回应后不会留下记录(如果要用之前的请求信息,需重传

设计原因:随着动态交互越来越多,重传严重浪费资源,因此设计了CookiesSession

使用方法

        Cookies:将前面请求的信息保存成一个临时文件cookies值,存放在浏览器中。

        Session:相当于一个永久Cookies,关闭客户端依旧存在。

                         退出客户端后,信息将会以Session的形式保存在服务器,并返回一个Session ID

                         给客户端。客户端会将Session ID保存在内存中。后续每次请求,都会

                         加上Session ID,服务器会将Session响应给客户端。

                         避免Session太多浪费资源:设置 timeout

四、HTTPS协议

        HTTPS(Hypertext Transfor Protocol Secure)超文本传输安全协议,是HTTP协议安全版。

因为HTTP是明文的,并且服务器和客户端都无法核对身份,HTTP不安全。

4.1 特点

        HTTPS协议的报文是密文

        HTTPS协议可以对服务器和客户端进行身份认证

        HTTPS协议可以防止信息被篡改,保证信息完整性。

        HTTPS协议比HTTP协议多一个SSL层

 4.2 SSL

                                                        SSL默认是 443 端口

1. 客户端请求建立SSL连接,并将自己支持的一套加密规则发给服务器

2. 服务器在其中选出一组加密算法与HASH算法,并将自己的身份证书发送给客户端

        (身份证书包括:网址、加密公钥、证书颁发机构等)

3. 客户端接收到证书后:

        <1> 验证证书合法性。如果合法,则生成一串随机数密码,用公钥对密码加密。

        <2> 将加密密码发给服务器,告知服务器以后报文都加密。(握手结束)

4. 服务器接收到加密密码信息后:

        <1> 用私钥进行解锁,得到密码

        <2> 告知客户端以后报文都加密。(握手结束)

4.2.1 解释

HTTPS是非对称性加密(两边不是通过统一钥匙加密的)

                客户端通过自己生成的密码加密,用公钥解密

                服务器通过私钥解密,用客户端发送过来的密码解密

4.2.2 SSL版本

        常用的有:SSLv3,TLS1.0,TLS1.2

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

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

相关文章

shopify主题布局layout

一、基本概念 Layout是Shopify主题中的基础结构&#xff0c;它决定了页面的整体框架和布局方式。通过Layout&#xff0c;可以统一管理和控制页面上的公共元素&#xff0c;如页眉&#xff08;Header&#xff09;、页脚&#xff08;Footer&#xff09;等&#xff0c;确保这些元素…

闯关leetcode——20. Valid Parentheses

大纲 题目地址内容 解题代码地址 题目 地址 https://leetcode.com/problems/valid-parentheses/description/ 内容 Given a string s containing just the characters ‘(’, ‘)’, ‘{’, ‘}’, ‘[’ and ‘]’, determine if the input string is valid. An input st…

批量采集电商商品详情数据接口(上货and数据分析价格库存监控等)

——在成长的路上&#xff0c;我们都是同行者。这篇关于电商API接口的文章&#xff0c;希望能帮助到您。期待与您继续分享更多API接口的知识&#xff0c;请记得关注Anzexi58哦&#xff01; 批量采集电商商品详情数据涉及到多个方面&#xff0c;包括商品的上货、价格监控、库存监…

机器学习--神经网络

神经网络 计算 神经网络非常简单&#xff0c;举个例子就理解了&#xff08;最后一层的那个写错了&#xff0c;应该是 a 1 ( 3 ) a^{(3)}_1 a1(3)​&#xff09;&#xff1a; n o t a t i o n notation notation&#xff1a; a j ( i ) a^{(i)}_j aj(i)​ 表示第 i i i 层的…

SprinBoot+Vue财务管理系统的设计与实现

目录 1 项目介绍2 项目截图3 核心代码3.1 Controller3.2 Service3.3 Dao3.4 application.yml3.5 SpringbootApplication3.5 Vue 4 数据库表设计5 文档参考6 计算机毕设选题推荐7 源码获取 1 项目介绍 博主个人介绍&#xff1a;CSDN认证博客专家&#xff0c;CSDN平台Java领域优质…

使用opencv优化图片(画面变清晰)

文章目录 需求影响照片清晰度的因素 实现降噪测试代码 锐化空间锐化Unsharp Masking频率域锐化对比测试 对比度增强常用算法对比测试 需求 对图像进行优化&#xff0c;使其看起来更清晰&#xff0c;同时保持尺寸不变&#xff0c;通常涉及到图像处理技术如锐化、降噪、对比度增强…

百度地图SDK Android版开发 11 覆盖物示例 4 线

百度地图SDK Android版开发 11 覆盖物示例 4 线 前言界面布局MapPolyline类常量成员变量初始值创建覆盖物移除覆盖物设置属性加载地图和释放地图 MapPolylineActivity类控件响应事件 运行效果图 前言 文本通过创建多个不同线宽的折线和大地曲线&#xff0c;介绍Polyline的使用…

numpy中的比较运算

目录 比较运算符 比较运算符 有两种情况会普遍使用比较运算符&#xff0c;一个是从数组中查询满足条件的元素&#xff0c;另一个是根据判断的结果执行不同的操作。 示例入下&#xff1a; import numpy as np arr7 np.array([[1,2,10],[10,8,3],[7,6,5]]) arr8 np.array([[2,…

整流器制造5G智能工厂物联数字孪生平台,推进制造业数字化转型

整流器制造行业作为制造业的重要组成部分&#xff0c;也在积极探索数字化转型的新路径。整流器&#xff0c;作为电力电子领域的关键元件&#xff0c;广泛应用于通信、工业控制、新能源等多个领域&#xff0c;其制造过程的智能化升级不仅关乎产品性能的提升&#xff0c;更是推动…

opencv使用videocapture打开视频时,依赖opencv_ffmpeg***.dll,默认必须放到执行目录,自定义目录需要重新编译opencv库

1. 找到modules下opencv_highgui模块的cap_ffmpeg.cpp 2. 找到加载opencv_ffmpeg的接口, 修改接口内opencv_ffmpeg的路径即可.

YOLOv10优改系列一:YOLOv10融合C2f_Ghost网络,让YoloV10实现性能的均衡

&#x1f4a5; &#x1f4a5;&#x1f4a5; &#x1f4a5;&#x1f4a5; &#x1f4a5;&#x1f4a5; &#x1f4a5;&#x1f4a5;神经网络专栏改进完整目录&#xff1a;点击 &#x1f497; 只需订阅一个专栏即可享用所有网络改进内容&#xff0c;每周定时更新 文章内容&#x…

基于JavaWeb开发的javaSpringboot+mybatis+layui的装修验收管理系统设计和实现

基于JavaWeb开发的javaSpringbootmybatislayui的装修验收管理系统设计和实现 &#x1f345; 作者主页 网顺技术团队 &#x1f345; 欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1f4dd; &#x1f345; 文末获取源码联系方式 &#x1f4dd; &#x1f345; 查看下方微信号获取联系…

【第31章】Spring Cloud之Sentinel控制台推送规则到Nacos

文章目录 前言一、下载源码1. 下载源码 二、规则配置1. Nacos适配1.1 使用数据源1.2 复制官方案例1.3 动态规则配置中心 2. 前端路由配置3. 提示4. 编译和启动 三、测试1. 修改前2. 修改后 总结 前言 前面我们已经完成了通过nacos存储提供者流控配置文件&#xff0c;下面我们来…

腾讯云升级多个云存储解决方案 以智能化存储助力企业增长

9月6日&#xff0c;在腾讯数字生态大会腾讯云储存专场上&#xff0c;腾讯云升级多个存储解决方案&#xff1a;Data Platform 数据平台解决方案重磅发布&#xff0c;数据加速器 GooseFS、数据处理平台数据万象、日志服务 CLS、高性能并行文件存储 CFS Turbo 等多产品全新升级&am…

Nuxt Kit 的使用指南:模块创建与管理

title: Nuxt Kit 的使用指南:模块创建与管理 date: 2024/9/11 updated: 2024/9/11 author: cmdragon excerpt: 摘要:本文是关于Nuxt Kit的使用指南,重点介绍了如何使用defineNuxtModule创建自定义模块及installModule函数以编程方式安装模块,以增强Nuxt 3应用的功能性、…

JD18年秋招笔试疯狂数列python解答

问题如下&#xff1a; 链接&#xff1a;疯狂序列_京东笔试题_牛客网 [编程题]疯狂序列 热度指数&#xff1a;149 时间限制&#xff1a;C/C 1秒&#xff0c;其他语言2秒 空间限制&#xff1a;C/C 32M&#xff0c;其他语言64M 东东从京京那里了解到有一个无限长的数字序列: 1…

空间物联网中的大规模接入:挑战、机遇和未来方向

这篇论文的标题是《Massive Access in Space-based Internet of Things: Challenges, Opportunities, and Future Directions》&#xff0c;作者包括Jian Jiao, Shaohua Wu, Rongxing Lu, 和 Qinyu Zhang。文章发表在2021年10月的IEEE Wireless Communications上。论文主要探讨…

计算机毕业设计 半成品配菜平台的设计与实现 Java实战项目 附源码+文档+视频讲解

博主介绍&#xff1a;✌从事软件开发10年之余&#xff0c;专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精…

数据结构算法——排序算法

1.排序 1.选择排序 不稳定&#xff0c;一般不用&#xff0c;基本排序 思路&#xff1a;过滤数组&#xff0c;找到最小数&#xff0c;放在前面。 不稳&#xff1a;导致原本在前的数据移动到后面。 int arr[];for(i0;i<arr.length-1;i){int smallesti; for(ji1;j<leng…

计算机毕业设计 网上体育商城系统 Java+SpringBoot+Vue 前后端分离 文档报告 代码讲解 安装调试

&#x1f34a;作者&#xff1a;计算机编程-吉哥 &#x1f34a;简介&#xff1a;专业从事JavaWeb程序开发&#xff0c;微信小程序开发&#xff0c;定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事&#xff0c;生活就是快乐的。 &#x1f34a;心愿&#xff1a;点…