HTTP协议及应用

一.HTTP协议

1.HTTP协议版本

HTTP1.0:服务器处理完成后立即断开TCP连接(无连接),服务器不跟踪每个客户端也不记录过去的请求(无状态);

HTTP1.1:KeepAlived长连接避免了连接建立和释放的开销;通过Content-Length来判断当前请求数据是否已经全部接受(有状态);

HTTP2.0:引入二进制数据帧和流的概念,其中帧对数据进行顺序标识;因为有了序列,服务器可以并行的传输数据。

2.http1.0和http1.1的主要区别如下:

缓存处理:1.1添加更多的缓存控制策略(如:Entity tag,If-Match);

网络连接的优化:1.1支持断点续传;

错误状态码的增多:1.1新增了24个错误状态响应码,丰富的错误码更加明确各个状态;

Host头处理:支持Host头域,不在以IP为请求方标志;

长连接:减少了建立和关闭连接的消耗和延迟。

2.http1.1和http2.0的主要区别:

新的传输格式:2.0使用二进制格式,1.0依然使用基于文本格式;

多路复用:连接共享,不同的request可以使用同一个连接传输(最后根据每个request上的id号组合成正常的请求);

header压缩:由于1.X中header带有大量的信息,并且得重复传输,2.0使用encoder来减少需要传输的hearder大小;

服务端推送:同google的SPDUY(1.0的一种升级)一样;

HTTP与HTTPS之间的区别:

二.HTTPS链接建立的过程:

1.首先客户端先给服务器发送一个请求;

2.服务器发送一个SSL证书给客户端,内容包括:证书的发布机构、有效期、所有者、签名以及公钥;

3.客户端对发来的公钥进行真伪校验,校验为真则使用公钥对对称加密算法以及对称密钥进行加密;

4.服务器端使用私钥进行解密并使用对称密钥加密确认信息发送给客户端;

5.随后客户端和服务端就使用对称密钥进行信息传输;

对称加密算法:

双方持有相同的密钥,且加密速度快,典型对称加密算法:DES、AES

非对称加密算法:

密钥成对出现(私钥、公钥),私钥只有自己知道,不在网络中传输;而公钥可以公开。相比对称加密速度较慢,典型的非对称加密算法有:RSA、DSA

三.Get和Post请求区别

1.HTTP请求:

2.get和Post区别:

四.HTTP常见响应状态码

100:Continue---继续。客户端应继续其请求。

200:OK---请求成功。一般用于GET与POST请求。

301:Moved Permanently---永久重定向。

302:Found---暂时重定向。

400:Bad Request---客户端请求的语法错误,服务器无法理解。

403:Forbideen---服务器理解请求客户端的请求,但是拒绝执行此请求。

404:Not Found---服务器无法根据客户端的请求找到资源(网页)。

500:Internal Server Error---服务器内部错误,无法完成请求。

502:Bad Gateway---作为网关或者代理服务器尝试执行请求时,从远程服务器接收到了无效的响应。

五.重定向和转发区别

重定向:redirect:

地址栏发生变化

重定向可以访问其他站点(服务器)的资源

重定向是两次请求。不能使用request对象来共享数据

转发:forward:

转发地址栏路径不变

转发只能访问当前服务器下的资源

转发是一次请求,可以使用request对象共享数据

六.Cookie和Session区别

Cookie和Session都是用来跟踪浏览器用户身份的会话方式,但两者有所区别:

Cookie数据保存在客户端(浏览器端),Session数据保存在服务器端。

cookie不是很安全,别人可以分析存放在本地的COOKIE并进行欺骗,考虑到安全应当使用session。

Cookie一般是来保存用户信息,Session的主要作用就是通过服务端记录用户的状态

七.浏览器输入URL过程

过程:DNS解析、TCP连接、发送HTTP请求、服务器处理请求并返回HTTP报文、浏览器渲染、结束。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【平衡二叉树】AVL树(双旋)

🎉博主首页: 有趣的中国人 🎉专栏首页: C进阶 🎉其它专栏: C初阶 | Linux | 初阶数据结构 小伙伴们大家好,本片文章将会讲解AVL树的左双选和右双旋的相关内容。 如果看到最后您觉得这篇文章写…

鸿蒙内核源码分析 (内核启动篇) | 从汇编到 main ()

这应该是系列篇最难写的一篇,全是汇编代码,需大量的底层知识,涉及协处理器,内核镜像重定位,创建内核映射表,初始化 CPU 模式栈,热启动,到最后熟悉的 main() 。 内核入口 在链接文件…

知了汇智引领未来:全新AIGC系列课程,打造数字时代人才新标杆

在全球AIGC(生成式人工智能)技术加速发展的背景下,一系列权威报道揭示了该领域内市场潜力、行业应用、教育研究、政府监管以及具体应用场景的蓬勃进展。据腾讯网4月19日报道,中国AIGC应用市场规模预计于2024年达到200亿人民币&…

FART 不需要刷机,通过脚本动态脱抽取壳

准备环境 adb , 见上一篇文章;frida-fart, https://github.com/hanbinglengyue/FART;frida, 参考上一篇文章 工具配置 解压该文件后,将lib文件夹中的fart.so和fart64.so拷贝到/data/app目录下,如果需要管理员权限,通过adb root…

C#窗体程序设计笔记:如何调出控件工具箱,并设置控件的属性

文章目录 调出控件工具箱设置控件属性 调出控件工具箱 使用Visual Studio打开C#解决方案后,初始界面如下图所示: 接着,在上方的菜单栏依次选择“视图”“工具箱”,即可打开工具箱,如下图所示: 设置控件属…

Jmeter 性能-阶梯式性能指标监听

例如:现要加载100个线程,希望聚合报告中分别展示:1-20,20-40,40-60,60-80的四个阶段的线程并发性能数据,而不是一并总体的统计数据。 实现方法:Jmeter通过自定义代码去实现 ①添加…

山东济南中国当代文化名人颜廷利:大自然赋予人类众生的真正贵重礼物

大自然赋予了众生---火(太阳,万物生长靠太阳)、水(河流,水是生命之源)、木(空气,生命就在一翕一合的呼吸之间)、土(大地,坤为大地之母&#xff0c…

爱普生M-A352加速度计受到日本气象厅认证

地震一直是缠在人们头顶的乌云,如何能在地震发生的时候提前获悉,防止造成更大的经济损失,成为了许多企业准备解决的问题。精工爱普生公司获悉,东京Knowledge ForesightInc.生产的配备爱普生M-A352 高性能三轴加速度计的“Yure Mon…

电力物联网-(2)系统设计

电力物联网系统设计 前言 在此之前写过《电力物联网系统设计》开篇文章,上一篇文章主要的概述性的内容,发表之后总觉得对电力物联网系统设计这一方面还只是开了一个头,没有把相关的内容讲解清楚,于是经过一段时间的构思终于产出了…

开源相机管理库Aravis例程学习(七)——chunk-parser

开源相机管理库Aravis例程学习(七)——chunk-parser 简介例程代码函数说明arv_camera_create_chunk_parserarv_camera_set_chunksarv_chunk_parser_get_integer_value 简介 本文针对官方例程中的:05-chunk-parser做简单的讲解。并介绍其中调…

Spring Framework-简介

Spring Framework Java Spring是一个开源的Java应用框架,它的主要目的是简化企业级应用开发的复杂性。Spring框架为开发者提供了许多基础功能,使得开发者能够更专注于业务逻辑的实现,而不是底层的细节。 主要特点和功能: 控制反…

怎么识别数学公式?分享简单识别方法

怎么识别数学公式?在学术研究和日常工作中,数学公式无疑是一个常见且重要的元素。然而,手动输入复杂的数学公式往往既耗时又容易出错。幸运的是,随着科技的发展,现在我们有了一些高效的软件工具,可以帮助我…

C语言----斐波那契数列(附源代码)

各位看官们好,当我写了上一篇博客杨辉三角后,有一些看官叫我讲一下斐波那契数列。对于这个大家应该是有了解的。最简单的规律就是f(n)f(n-2)f(n-1)。就是当前是前两项之和,然后下标1和0都是1.从第三项开始计算的。那么我们知道规律&#xff0…

纯电动汽车的发展趋势简述

纯电车简介 纯电动汽车是使用电池驱动电动马达而不是传统的内燃机的汽车。它们通常使用电池组储存能量,然后通过电动马达转化为动力来驱动车辆。相比于传统的燃油车,纯电动汽车具有零排放、低噪音、低维护成本等优点,因此在环保和能源效率方…

MATLAB蚁群算法求解带时间窗的旅行商TSPTW问题代码实例

MATLAB蚁群算法求解带时间窗的旅行商TSPTW问题代码实例 蚁群算法编程求解TSPTW问题实例: 在经纬度范围为(121, 43)到(123, 45)的矩形区域内,散布着1个商家(编号1)和25个顾客点(编号为226),各个…

Go-Zero定义API实战:探索API语法规范与最佳实践(五)

前言 上一篇文章带你实现了Go-Zero模板定制化,本文将继续分享如何使用GO-ZERO进行业务开发。 通过编写API层,我们能够对外进行接口的暴露,因此学习规范的API层编写姿势是很重要的。 通过本文的分享,你将能够学习到Go-Zero的API…

【御控物联】Java JSON结构转换、JSON协议转换、JSON属性互换(15):对象To数组——转换映射方式

文章目录 一、JSON结构转换是什么?二、术语解释三、案例之《JSON对象 To JSON数组》四、代码实现五、在线转换工具六、技术资料 一、JSON结构转换是什么? JSON结构转换指的是将一个JSON对象或JSON数组按照一定规则进行重组、筛选、映射或转换&#xff0…

如何压缩图片大小?7个实用软件教你快速压缩图片大小

如何压缩图片大小?7个实用软件教你快速压缩图片大小 以下是七个实用的软件,可以帮助您快速压缩图片大小: 图片编辑助手:这是一款功能强大的图像处理软件,其中包含了图像压缩功能。您可以打开需要压缩的图片&#xf…

Java 包语句,看这一篇就够了

1.设计的文件层级 我们将“Package”文件夹称为根目录,“Level01”称为一级目录,“Level02”称为二级目录,以此类推。 2.发现在不同目录下的包名有如下特征: 根目录下的文件不需要包名,可以理解成包名为 “”一级目录…

上海人工智能实验室浦视团队联培博士(2025)招生正式启动!

上海人工智能实验室浦视团队2025级联培博士招生计划开启啦! 上海人工智能实验室作为国内领先的人工智能领域的新型科研机构,不仅致力于攻克重要基础理论难题,更着眼于构建全球领先的 AI 技术人才培养平台。浦视团队是大模型方向的核心科研团…