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 -> 正文阅读

[网络协议]关于http

一 http

1 http是无状态协议,自身不对请求和响应之间的通信状态进行保存,这使得http是比较简单的,可以更快处理大量事务,确保协议的可伸缩性。

2 http用于客户端与服务端之间的通信,一个普通的请求包括:客户端向服务端发出请求,服务端处理请求,服务端将结果响应给客户端。

3 与http关系密切的协议:IP TCP DNS
(TCP/IP协议族按层次分为:应用层、网络层、传输层、链路层)
IP协议: 位于网络层,作用是把各种数据包传递给对方,而要保证确实传送到对方那里, 则需要满足各类条件。 其中两个重要的条件是 IP 地址和 MAC地址 。 IP地址指明了节点被分配到的地址,可变换;Mac地址是指网卡所属的固定位置,基本不会更改。

TCP协议:位于传输层,提供可靠的字节流服务(将大块数据分割成以报文段为单位的数据包进行管理)。TCP的三次握手:发送端首先将标有SYN标志的数据包发给对方,接收端收到后回传一个带有SYN/ACK标志的数据包来确认收到信息,最后发送端再回传一个带ACK标志的数据包代表“握手”结束。

DNS服务:位于应用层,提供域名到IP地址的解析服务(通过域名查找IP地址或者逆向从IP地址反查域名)。
在这里插入图片描述

二 cookie

基本介绍:1 当一个浏览器访问某web服务器时,web服务器会调用addCookie()方法,在响应头中添加一个名叫Set-Cookie的响应字段用于将Cookie返回给浏览器,当浏览器第二次访问该web服务器时会自动的将该cookie回传给服务器,来实现用户状态跟踪。

2 每一个cookie都有一个name和一个value,且name属性是唯一的。每个web浏览器储存多个web站点的cookie,浏览器一般只允许存放300个Cookie,每个站点最多存放20个Cookie,每个Cookie的大小限制为4KB。

分类:会话级别 or 持久化
1 会话级别的cookie储存在浏览器的内存中,用户关闭浏览器后删除。

2 持久化的cookie存储在浏览器目录下的文件(磁盘)中,这需要设置该cookie的生命周期setMaxAge,以秒为单位,优先级别高于expires,类似定时器代表过了多久浏览器删除该cookie。

cookie的作用域
cookie的domain和path属性定义了cookie的作用范围,即访问哪些网站或url时,会自动的带着该cookie。domain即域名,默认是当前主机(不包括子域名),path默认是*(所有路径),即域名后面的的路径。大部分情况下我们都是使用默认的设置即可。

三 session

基本介绍:web服务器中会开辟一块内存用来保存服务器端所有的session,每个session都会有一个唯一标识sessionid,根据客户端传过来的jsessionid(cookie中),找到对应的服务器端的session。为了防止服务器端的session过多导致内存溢出,web服务器默认会给每个session设置一个有效期, (30分钟)若有效期内客户端没有访问过该session,服务器就认为该客户端已离线并删除该session。

保存sessionid的方式

1 放在cookie中,通过一个特殊的cookie,name为JSESSIONID,value为服务器端某个 session的ID,默认的方式。但是当浏览器禁用cookie后session就会失效。

2 附加在url路径后面,在cookie浏览器被禁用时启用。可作为附加信息添在url后面或作为查询字符串加在url后面

基本原理

当用户发送请求到服务器后,先检查请求中是否含有sessionid,如果没有说明是第一次访问,服务器就会创建一个session对象,并将sessionid附加到set-cookie的响应头中。
如果存在sessionid就会到服务器查找对应的session。所以说,服务器端的session和客户端的cookie是息息相关的,若是没有了cookie,又不做其他处理的话,服务器端的session也没了。

question:关闭浏览器后session会消失吗?
tip:从服务端和浏览器端考虑。

四 token

基本介绍:token可理解为“令牌”,是全局唯一的一个字符串,用来识别唯一的客户端。token解决了session依赖于单个Web服务器的问题,session只存在于单一服务器中,而在web服务器集群环境下需要用户多次登录,使得用户体验很不好。比如,某人在a服务器上登录过一次,这时跳转到b服务器但依靠session就还得再登录一次。

基本原理:模拟cookie、session的机制。根据“cookie中根据sessionid来查找服务器端session的”,生成客户端唯一字符串;使用redis的哈希类型来模型服务器端的session,得到服务端会话信息存储,再让二者匹配。

我们可以在用户第一次请求该web服务器时或是用户登录该web服务器时,生成一个全局唯一的token返回给前端存储,同时将该用户信息存到redis中并设置有效期,之后每次请求中都在请求头中带着这个token,服务器端根据这个token到redis中查找对应的用户信息,即得到了我们所说的 “session”。

总结cookie session token

cookie:一种数据载体,把session放在cookie中送到客户端那边去,之后cookie跟着每个请求头发给服务端。

session:诞生并保存在服务器中,由服务器主导一切。

token:诞生于服务器,保存于浏览器,由客户端主导一切,可以放在cookie或storage里,持“令牌”访问服务器。

详情

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2022-03-21 21:30:49  更:2022-03-21 21:34:24 
 
开发: 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 5:27:58-

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