随笔分类 - Web开发
摘要:个人笔记,需要前置知识——Base64 编码原理。 问题 今天测试 JWT,发现修改 JWT 的最后一个字符(其实不是我发现的。。),居然有可能不影响 JWT 的正确性。比如如下这个使用 HS256 算法的 JWT: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJz
阅读全文
摘要:![](https://img2020.cnblogs.com/blog/968138/202101/968138-20210125221931077-900602350.png) > 本文已迁移至:
阅读全文
摘要:![](https://img2020.cnblogs.com/blog/968138/202101/968138-20210125221830705-1237362466.png) [TOC] 《写给开发人员的实用密码学》系列文章目录: - [写给开发人员的实用密码学(一)—— 概览](https
阅读全文
摘要:>博客已迁移至: ![](https://img2020.cnblogs.com/blog/968138/202101/968138-20210125221733416-192830561.png)
阅读全文
摘要:一、API Gateway 网关,就是指一个流量的集中式出入口。而 API Gateway,顾名思义,就是在 Gateway 上再添加了一些 API 相关的功能后得到的东西。 具体而言,API Gateway 就是比普通的网关多干了一些以前我们在应用内部实现的事:身份认证,权限控制,基于来源的流量控
阅读全文
摘要:个人笔记,不保证正确。 独立博客阅读:https://ryan4yin.space/posts/jwt-algorithm-key-generation/ 签名算法 介绍具体的 JWT 签名算法前,先解释一下签名、摘要/指纹、加密这几个名词的含义: 数字签名(Digital Signature):
阅读全文
摘要:公司的应用架构一开始就选定了微服务+Kubernetes+Istio,整个开发环境都在内网,使用 Jenkins 做半自动化的 CI/CD. 前后端架构 前后端都遵从同一套设计思想:分层架构,提升复用能力,以后端为例,它的层次结构如下: 基础层:封装了开源的各种数据库连接器(mysql/redis/
阅读全文
摘要:一、 浏览器与服务器是如何协商使不使用 TLS/SSL 的? 如果你用 HTTP 上知乎,它会返回一个 301,重定向到 HTTPS. 之后浏览器就会记住这个网页支持 HTTPS,在不给出协议 scheme 的情况下(在输入框只输入 zhihu.com),优先使用 HTTPS 访问。 在 HTTPS
阅读全文
摘要:独立博客阅读:https://thiscute.world/posts/sqlalchemy-notes-3-relationship-and-foreignkey/ 个人笔记,不保证正确。 一、关系构建:ForeignKey 与 relationship 关系构建的重点,在于搞清楚这两个函数的用法
阅读全文
摘要:1. 记录慢查询 flask 在 debug 模式下运行时,flask-sqlalchemy 会自动记录所有的 queries,在请求结束前,可以通过 flask_sqlalchemy.get_debug_queries() 获取到所有查询。 在非 debug 模式下,也可以在配置中手动指定 SQL
阅读全文
摘要:独立博客阅读:https://thiscute.world/posts/python-asyncio/ 个人笔记,不保证正确。 虽然说看到很多人不看好 asyncio,但是这个东西还是必须学的。。 基于协程的异步,在很多语言中都有,学会了 Python 的,就一通百通。 一、生成器 generato
阅读全文
摘要:>文章已迁移至: ![](https://img2020.cnblogs.com/blog/968138/202101/968138-20210128103352640-1271428917.png) ## 一、WebSocket WebSocket 是一个双向通信协议,它在握手阶段采用 HTTP/
阅读全文
摘要:独立博客阅读:https://thiscute.world/posts/web-browser-dev-tools/ 不管是做爬虫还是写 Web App,Chrome 和 Firefox 的 DevTools 都是超常用的,但是经常发现别人的截图有什么字段我找不到,别人的什么功能我的 Chrome
阅读全文
摘要:概括 1. URL:需要操作的对象,也就是资源 2. HTTP method:我要对该对象做什么( POST 增、DELETE 删、GET 查、PUT 和 PATCH 改 ) 3. HTTP status code:操作的结果 做到这个,就达成了 REST 的第二层。 视图的定义方式 一般视图都使用
阅读全文
摘要:一、Web 服务器与 Web 框架 首先明确一下,要运行一个动态网页,我们需要 1. 一个 Web 服务器来监听并响应请求,如果请求的是静态文件它就直接将其返回,如果是动态 url 它就将请求转交给 Web 应用。 1. 一个 Web 应用来动态处理请求,生成响应 其中 Web 服务器通常都是别人已
阅读全文
摘要:今天打算花时间把 OneNote 和 EverNote 里的笔记整理一下,放到 cnblogs 里。 因为我平常遇到解决过的问题都习惯翻自己的博客,但是以前的很多笔记都不在 cnblogs 上,要不是今天找自己的计算机网络笔记,我几乎都忘记这回事了。。。 Git 是目前最流行的分布式版本管理系统,令
阅读全文
摘要:Scrapy 中常用的数据提取方式有三种:Css 选择器、XPath、正则表达式。 Css 选择器 Web 中的 Css 选择器,本来是用于实现在特定 DOM 元素上应用花括号内的样式这样一个功能的。 在爬虫中,我们可以用它来选择提取出需要的内容。Css 有非常丰富的功能,因为我们只用它提取数据,我
阅读全文
摘要:Spring Web MVC 流程 Dispatcher Servlet 这是一个前端分派 Servlet(前端控制器模式),外部所有的请求都会先到达这里,然后由其将请求分派给其他组件进行实际的处理。 Handler Mapping 处理器映射,由 DispatcherServlet 通过 url
阅读全文
摘要:这里记录一下 Java 和 Python 的测试框架:Junit 和 unittest. 两个框架的设计完全类似。 创建一个测试 假设我们有一个需要测试的 Java 类: package me.ryan.test; public class Calculator { public int evalu
阅读全文
摘要:前言 横切关注点 使用 @AspectJ 定义切面。 同时还需要在配置类上应用 @EnableAspectJAutoProxy 注解,启用 AOP 自动代理。(不添加它的话,@AspectJ 注解的类只会被当作普通 Bean) 定义切点 使用 @Pointcut 定义切点,其参数为切点表达式,切点表
阅读全文