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报文、浏览器渲染、结束。

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

卷积神经网络CNN的运行过程、常见术语与问题

目录 一、CNN运行过程 1、卷积(Convolution) 2、激活函数(activation function) 3、池化(pooling) 3.1 池化操作 3.2 池化过程 3.3 池化后结果 4、Flatten 5、全连接层 Flatten层的操作 全连接层…

MyBatis常见报错:org.apache.ibatis.binding.BindingException

哈喽,大家好,我是木头左! 异常现象描述 当开发者在使用MyBatis进行数据库操作时,可能会遇到org.apache.ibatis.binding.BindingException: Parameter appId not found这样的错误提示。这个错误通常会让程序无法正常运行&#xff…

namenode启动失败 org.apache.hadoop.hdfs.server.common.InconsistentFSStateException:

小白的Hadoop学习笔记 2024/5/14 18:26 文章目录 问题解决报错浅浅分析一下core-ste.xml 问题 namenode启动失败 读日志 安装目录下 vim /usr/local/hadoop/logs/hadoop-tangseng-namenode-hadoop102.log2024-05-14 00:22:46,262 ERROR org.apache.hadoop.hdfs.server.namen…

ov通配符证书1590

OV通配符SSL证书也可以称之为OV企业型泛域名SSL证书,指的是专为企事业单位准备的通配符SSL证书,不仅可以用一张SSL证书保护主域名以及主域名下所有的子域名,还可以为多个域名网站进行身份认证服务。今天就随SSL盾小编了解性价比较高的OV通配符…

端口号查询进程PID

情况1:由于 idea 突然闪退,导致正在 debug 的 Java 进程没结束掉,端口还在占用,重新 debug 不了,所以需要到任务管理器把进程结束掉 但问题是如果当任务管理器进程同时有多个 Java 进程在运行(而且名字一样…

涨点神器:即插即用特征融合模块!超低参数,性能依旧SOTA

在写论文时,一些通用性模块可以在不同的网络结构中重复使用,这简化了模型设计的过程,帮助我们加快了实验的迭代速度。 比如在视觉任务中,即插即用的特征融合模块可以无缝集成到现有网络中,以灵活、简单的方式提升神经…

推荐5个实用的工具软件,提高效率

​ 现在,有很多实用的工具和软件可以帮助我们更高效地完成各种任务。以下是几个值得推荐的工具和软件,能够极大地提高我们的工作效率。 1.浏览器插件——SuperCopy ​ SuperCopy是一款浏览器插件,主要用于增强网页文本的复制功能。它解决了…

曲线救国:window 安装 docker

你好,我是 shengjk1,多年大厂经验,努力构建 通俗易懂的、好玩的编程语言教程。 欢迎关注!你会有如下收益: 了解大厂经验拥有和大厂相匹配的技术等 希望看什么,评论或者私信告诉我! 文章目录 一…

深入解析RedisJSON:在Redis中直接处理JSON数据

码到三十五 : 个人主页 JSON已经成为现代应用程序之间数据传输的通用格式。然而,传统的关系型数据库在处理JSON数据时可能会遇到性能瓶颈。为了解决这一问题,Redis推出了RedisJSON模块,它允许开发者在Redis数据库中直接存储、查询…

C语言(指针)7

Hi~!这里是奋斗的小羊,很荣幸各位能阅读我的文章,诚请评论指点,关注收藏,欢迎欢迎~~ 💥个人主页:小羊在奋斗 💥所属专栏:C语言 本系列文章为个人学习笔记&#x…

linux 任务管理(临时任务定时任务) 实验

目录 任务管理临时任务管理周期任务管理 任务管理 临时任务管理 执行如下命令添加单次任务,输入完成后按组合键Ctrl-D。 [rootopenEuler ~]# at now5min warning: commands will be executed using /bin/sh at> echo "aaa" >> /tmp/at.log at&g…

突破编程界限:探索AI编程新境界

文章目录 一、AI编程助手1.1 Baidu Comate智能代码助手1.2 阿里云 通义灵码 二、场景需求三、体验步骤3.1 官网下载3.2 手动下载 四、试用感受4.1 提示4.2 注释生成代码4.3 代码生成4.4 选中生成注释4.5 查看变更&新建文件4.6 调优建议4.7 插件使用 五、结尾推荐 一、AI编程…