计算机网络——HTTP与HTTPS协议

news2024/9/25 5:23:16

HTTP与HTTPS是应用层的协议。

目录

一、HTTP

二、HTTPS

三、HTTP与HTTPs对比

四、HTTP/1.0  HTT/1.1  HTTP/2有什么区别

五、HTTP常用请求方法?get/post区别?

六、HTTP的工作过程

七、HTTPS的工作过程

八、Cookie、Session、Token


一、HTTP

超文本传输协议(Hypertext Transfer Protocol,HTTP)是一个简单的请求-响应协议,它通常运行在TCP之上,是万维网WWW(World Wide Web)的数据通信的基础。 《百度百科》

二、HTTPS

超文本传输安全协议(Hypertext Transfer Protocol Secure,HTTPS)是以安全为目标的 HTTP 通道,在HTTP的基础上加入SSL,通过传输加密和身份认证保证了传输过程的安全性。

SSL(Secure Socket Layer)安全套接层是Netscape公司率先采用的网络安全协议。它是在传输通信协议(TCP/IP)上实现的一种安全协议,采用公开密钥技术。    《百度百科》

三、HTTP与HTTPs对比

①HTTP 信息是明文传输(未加密),存在安全风险的问题。HTTPS 主要由两部分组成:HTTP + SSL / TLS,也就是在 HTTP 上又加了一层处理加密信息的模块

②HTTP 默认端口号是 80,HTTPS 默认端口号是 443。
③HTTPS 协议可认证用户和服务器,确保数据发送到正确的客户机和服务器。

四、HTTP/1.0  HTT/1.1  HTTP/2有什么区别

*下图来自公众号 小林coding

五、HTTP常用请求方法?get/post区别?

①GET请求用来从服务器获取数据(文本、页面、图片视频等),POST请求用来发送/提交数据(表示示向服务器申请创建新的资源或对已有的资源进行修改)。

②GET请求将请求参数拼接到URL上进行参数传递,而POST则是将请求参包装到HTTP报文的请求体(body)中。

③从请求的大小看,GET请求的长度受限于浏览器和服务器对URL长度的限制。

六、HTTP的工作过程

①    客户端首先通过DNS(域名系统)解析目标服务器的IP地址,然后通过TCP/IP协议与服务器建立连接。通常,连接使用的端口号是80(HTTP)或443(HTTPS)。
②    建立连接后,客户机发送一个请求给服务器。请求具有专门的请求格式和请求报文。
③    服务器接到请求后,解析请求,根据请求方法和资源路径给予相应的响应信息。响应也有专门的格式与响应报文。
④    客户端接收到服务器的响应后,解析响应内容。如果响应是一个HTML页面,浏览器会渲染并显示给用户。
⑤    关闭连接。HTTP/1.0每个请求/响应后都会关闭TCP连接。HTTP/1.1允许在同一个TCP连接上发送多个请求和响应,从而提高效率。

七、HTTPS的工作过程

①    客户端输入一个HTTPS网址,浏览器会向目标服务器发起连接请求,指定使用HTTPS协议。
②    服务器收到请求后,会将SSL/TLS证书发送给客户端。
③    客户端检查证书是否由可信的证书颁发机构(CA)签发,并确认证书是否在有效期内,证书中的域名是否与用户请求的域名匹配。如果证书不合法,浏览器会向用户发出警告。
④    如果证书验证通过,使用会话密钥进行加密和解密。
⑤    客户端和服务器通过加密的通道开始交换数据。所有通过HTTPS传输的数据都经过加密,确保数据的机密性、完整性和真实性。
⑥    当通信完成后,客户端和服务器会终止SSL/TLS连接。这时,双方会销毁会话密钥,结束加密通信。

八、Cookie、Session、Token

http协议的每一次访问都是无状态的,也就是每个请求都是完全独立的,服务端无法确认当前访问者的身份信息,无法分辨上一次的请求发送者和这一次请求的发送者是不是同一个客户端。需要一个状态用于告诉服务端前后两个请求是否来自同一个浏览器。这个状态就需要通过 cookie 或者 session 来实现。经常简单APP或者小程序询问是否允许授予权限(获取昵称、头像、地区、性别等个人信息)而实现授权的方式就是:cookie、session、token.
(1)    Cookie由服务器发送到用户浏览器,并进行保存到本地,它会在浏览器下次向同一服务器再发起请求时被再一次被带到并发送到服务器上面。
(2)    Session存储在服务器端,sessionId(session 的唯一标识信息) 会被存储到客户端的cookie 中。服务器拿到cookie中的信息后会取session中验证信息
(3)    Token是访问资源接口(API)时所需要的资源凭证。Token 使服务端无状态化,不会存储会话信息。token可以用于标识用户身份、授权访问权限或传递安全信息。
Cookie 和 Session 的区别
安全性: Session 比 Cookie 安全,Session 是存储在服务器端的,Cookie 是存储在客户端的。
有效期不同: Cookie 可设置为长时间保持,如默认登录功能,Session 一般有效时间较短,如某些网页版邮箱登上半小时没操作就会断开,提示重新登录。
存储大小不同: 单个 Cookie 保存的数据不能超过 4K,Session 可存储数据远高于 Cookie,但是当访问量过多,会占用过多的服务器资源。
存取值的类型不同:Cookie 只支持存字符串数据,想要设置其他类型的数据,需要将其转换成字符串,Session 可以存任意数据类型。

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

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

相关文章

【CAN总线测试】——CAN物理层测试

从0开始学习CANoe使用 从0开始学习车载测试 相信时间的力量 星光不负赶路者,时光不负有心人。 目录 1.最小通讯电压测试 2.最大通讯电压测试 3.显性位/隐性位输出电压测试 4.信号跳变沿测试 5.地偏移 6.终端电阻 1.7. CANH/CANL短路 1.8. CANH /GND短路 …

Verilog刷题笔记58

题目: Exams/2014 q3c 解题: module top_module (input clk,input [2:0] y,input x,output Y0,output z );parameter s03d000,s13d001,s23d010,s33d011,s43d100;always(*)begincase(y)s0:Y0x;s1:Y0~x;s2:Y0x;s3:Y0~x;s4:Y0~x;endcaseendassign z(y3b01…

Kafka运行机制(二):消息确认,消息日志的存储和回收,生产者消息分区

前置知识 Kafka基本概念https://blog.csdn.net/dxh9231028/article/details/141270920?spm1001.2014.3001.5501Kafka运行机制(一):Kafka集群启动,controller选举,生产消费流程https://blog.csdn.net/dxh9231028/arti…

Verilog刷题笔记57

题目: Exams/2014 q3bfsm Given the state-assigned table shown below, implement the finite-state machine. Reset should reset the FSM to state 000. 解题: module top_module (input clk,input reset, // Synchronous resetinput x,output z );parameter…

ESP32-IDF 在 Ubuntu 下的配置

目录 一、安装准备二、获取 ESP-IDF三、设置工具四、使用案例 参考资料:官方文档:Linux 和 macOS 平台工具链的标准设置。 一、安装准备 参照官方文档,首先下载编译 ESP-IDF 所需要的软件包: sudo apt-get install git wget fl…

如何使用ssm实现基于Java的共享客栈管理系统

TOC ssm058基于Java的共享客栈管理系统jsp 第1章 绪论 1.1 课题背景 互联网发展至今,无论是其理论还是技术都已经成熟,而且它广泛参与在社会中的方方面面。它让信息都可以通过网络传播,搭配信息管理工具可以很好地为人们提供服务。所以各…

一篇快速搞懂 JavaSE 高级特性(代码块,注解,枚举,异常处理,多线程,集合框架,泛型,反射,IO ......)

JavaSE 高级 一、面向对象(高级)1、单例模式(Singleton)2、代码块1)静态代码块2)非静态代码块 3、关键字 final4、抽象类与抽象方法(abstract)5、模板方法设计模式(Templ…

利用GPT绘制流程图(无需下载任何软件

目录 什么是Flowchart Fun?如何利用GPT绘制流程图?步骤1:确定流程图的目的和内容步骤2:训练GPT编写流程图的文本描述步骤3:转换文本格式为可视化的流程图步骤4:调整和优化 结论小结: 什么是Flow…

SpringBoot【重修之HTTP协议】

request 请求,response 响应! HTTP-协议的解析: 客户端:浏览器已经会自动解析了 服务端:通过Web服务器来解析!【Tomcat , Jetty , WebLogic , WebSphere 】 Tomcat的研究学习 SpringBoot Web快速入门…

AIxBoard部署BLIP模型进行图文问答

一、AIxBoard简介 AIxBoard(X板)是一款IA架构的人工智能嵌入式开发板,体积小巧功能强大,可让您在图像分类、目标检测、分割和语音处理等应用中并行运行多个神经网络。它是一款面向专业创客、开发者的功能强大的小型计算机&#xf…

[Linux CMD] 查看系统资源 (持续更新中)

概述 在Linux中,有许多命令和工具可用于查看系统的资源使用情况。以下是一些常用的方式: top:top命令是最常见的实时系统监视工具之一。它显示了当前运行的进程列表,以及每个进程的CPU、内存使用情况、nice值等信息。top命令还会…

【Linux】简易日志工具项目

有些鸟儿是不应该被关在笼子里的, 因为他们的羽毛太丰润了。 当他们飞走,你会由衷地庆贺他获得自由。 --- 肖申克的救赎》--- 从零开始构建简易日志系统 1 日志1.1 什么是日志1.2 日志的意义1.3 为什么要构建自己的日志工具 2 构建自己的日志工具2.1…

带有限制编辑的PDF文件怎么取消编辑限制

在日常工作和学习中,我们经常会遇到一些带有“限制编辑”的PDF文件。这些文件由于设置了密码保护,使得我们无法直接编辑、复制或打印其中的内容,给信息的处理和利用带来了诸多不便。然而,通过一些有效的方法和工具,我们…

C++—八股文总结(25秋招期间一直更新)

1、const 1.1 指针常量和常量指针 说说const int *a, int const *a, const int a, int *const a, const int *const a分别是什么,有什么特点。 const int *aint const *a; //可以通过 a 访问整数值,但不能通过 a 修改该整数的值,指针本身是…

【AI赋能游戏】《黑神话:悟空》专属黑悟空无限创意生成器!(整合包分享)

最近最火的话题,肯定就是《黑神话:悟空》了!这游戏实在是忒火火火了。。。全网破圈霸屏,连官媒央视都给了无死角宣传! 《黑神话:悟空》登顶Steam历史售卖榜,同时在线玩家冲到了最高**222**万人&…

8.22-docker的部署及其使用

docker 1.docker环境部署以及语法 [rootdocker ~]# cat << EOF | tee /etc/modules-load.d/k8s.conf> overlay> br_netfilter> EOFoverlaybr_netfilter[rootdocker ~]# modprobe overlay[rootdocker ~]# modprobe br_netfilter[rootdocker ~]# cat /etc/module…

【个人学习】JVM(8): 对象的实例化、内存布局、访问定位

对象的实例化内存布局与访问定位 对象的实例化 对象创建的方式 new&#xff1a;最常见的方式、单例类中调用getInstance的静态类方法&#xff0c;XXXFactory的静态方法Class的newInstance方法&#xff1a;在JDK9里面被标记为过时的方法&#xff0c;因为只能调用空参构造器&am…

Ignition Gateway配置

Config-System backup和restore&#xff1a; backup可以直接备份整个gateway配置&#xff0c;包括所有项目。 restore可以恢复gateway配置&#xff0c;包括所有项目。

pytorch基础学习

环境安装 mac安装conda&#xff08;为什么安装conda? conda类似沙箱&#xff0c;将一个一个环境隔离起来&#xff0c;解决Python工程之前的包冲突问题&#xff09; 下载Miniconda安装器:https://docs.conda.io/en/latest/miniconda.html 执行dmg安装。 安装完成后&#xff0c…

C++对象初始化

背景 最近在编译一个库的时候发现有个编译错误&#xff0c;最后发现是初始化对象的时候出了问题&#xff0c;这里简单记录一下&#xff1a; #include <iostream>class A { public:int m_a; }; class C { public:int m_c;operator A(){}; }; class B { public:B(){};B (…