IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> http/https+长连接技术 -> 正文阅读

[网络协议]http/https+长连接技术

Http

基于《尼恩:Java高并发核心编程》

一、概述

来看看几个概念点

  • Hyper Text Transfer Protocol,超文本传输协议

  • 基于请求与响应、无状态的应用层的协议

1.1 http的组成部分

一个Http请求由三个部分组成

  1. 请求头:若干头部的字段,如消息正文长度、字符集等
  2. 请求体:一些数据如Cookie、Token以及一些客户端数据等
  3. 请求行:包含请求方法、URL地址、协议名称和版本号

一个Http响应由三个部分组成

  1. 响应头
  2. 响应体
  3. 响应行

1.2 状态码

接下来看看http的状态码有哪些

状态码说明
100-199(没遇到过…)成功接收请求,要求客户端继续提交下一次请求完成整个处理过程
200-299请求成功,例如200,我也只遇到过200
300-399(没遇到过…)需要进一步细化请求
400-499浏览器请求出现错误,例如请求资源不存在(404)
500-599后端服务器出现问题,例如SQL报错等等

1.3 GET和POST的区别

  1. 请求数据的放置位置不同:Get附在URL后,Post在请求体里
  2. 传输数据量大小不同:Get长度限制在URL中,Post理论上数据不受限
  3. 传输数据安全性不同:Get在URL明文显示,Post藏在请求体里,虽然F12也能看到

二、浅入浅出

咱就不深入浅出了,我自己都没玩明白

2.1 HTTP的2.0

版本产生时间内容发展现状
HTTP/0.91991年不涉及数据包传输,规定客户端和服务器之间通信格式,只能GET请求没有作为正式的标准
HTTP/1.01996年传输内容格式不限制,增加PUT、PATCH、HEAD、 OPTIONS、DELETE命令正式作为标准
HTTP/1.11997年持久连接(长连接)、节约带宽、HOST域、管道机制、分块传输编码2015年前使用最广泛
HTTP/22015年多路复用、服务器推送、头信息压缩、二进制协议等逐渐覆盖市场

http的2.0版本是一个二进制协议,在以前1.0的时代数据传输是通过应用层的纯文本格式,然而在2.0时代引入了新的数据传输单位,分别是:帧、消息、流,2.0版本会将所有传输的信息分割为更小的消息和数据帧,它有几个特点

  1. 首部压缩
  2. 多路复用
  3. 并行双向传输
  4. 服务端推送

2.2 TCP与长连接

其实,HTTP长连接和HTTP短连接指的是传输层的TCP连接是否被多次使用

模型对比

先看看OSI七层模型

如果把它跟TCP/IP协议进行一个对比的话

OSI模型TCP/IP
应用层应用层
表示层👆
会话层👆
传输层传输层
网络层网络层
数据链路层链路层
物理层👆

我们最常用的http、ssh、dns都是在应用层上进行处理的,并且在http报文传输中的本质过程就是数据封装和解封装的一个过程

握手与挥手

TCP三次握手过程

  1. 客户端:发送SYN帧打开请求传输通道
  2. 服务器:收到,回包进行确认
  3. 客户端:自身状态改变,发送ACK最终确认
  4. 数据传输…

TCP四次挥手过程

  1. 客户端或服务器:发送请求断开的报文
  2. 收到,并回复:我接受你的分手
  3. 被分手的人继续完成最后的数据发送…然后回复报文:我发送完成了,拜拜
  4. 最终确认,关闭连接

TCP的连接状态

可以在Linux用netstat进行查看

参数解释

2.3 长连接的配置

长连接的本质是TCP连接建立后该传输层连接不再进行释放,供应用层反复使用,如果客户端在首部加上Connection:Keep-Alive请求头,表示请求服务端将传输层TCP连接保持在打开状态;如果服务端同意将这条TCP连接保持在打开状态,就会在HTTP响应中包含同样的首部

那么,怎么配置长连接呢?

独立部署Tomcat

修改apache-tomcat-8.5.69\conf\server.xml文件中的Connector(连接器)的配置,死命写参数

SpringBoot内嵌式Tomcat

可以通过配置TomcatServletWebServerFactory容器工厂Bean实例

Nginx长连接配置

去修改那个conf文件

设计原则

连接不是时间越久越好,需要看单个用户在单位时间内的请求次数而定

2.4 ApacheHttpClient长连接技术

以后再补充

三、WebSocket

简单描述,是一个全双工的持久双向连接,客户端和服务器可以向对方主动发送和接收数据

不学了先。。。

四、HTTPS

很好理解,HTTP不安全,所以引入了HTTPS,引入安全通道和密钥机制,在HTTP的基础上加入了SSL/TLS协议,TLS是传输层加密协议,前身是SSL协议

4.1 什么是SSL/TLS

1

4.2 以后再说

1

over

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2021-11-15 16:11:28  更:2021-11-15 16:12:47 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 7:46:44-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码