概念

gRPC详解

1.什么是gRPC

gRPC是rpc框架中的一种,是rpc中的大哥

是一个高性能,开源和通用的RPC框架,基于Protobuf序列化协议开发,且支持众多开发语言。

面向服务端和协议端,基于http/2设计,带来诸如双向流,流控,头部压缩,单TCP连接上的多路复用请求等特性。这些特性使得其在移动设备上表现的更好,更省电和节省空间。

在 gPRC 里客户端可以向调用本地对象一样直接调用另一台不同机器上服务端应用的方法,使得您能够更容易地创建分布式应用和服务。

与许多RPC系统类似,gRPC也是基于以下理念:定义一个服务,指定其能够被远程调用的方法(包含参数和返回类型)。在服务端实现这个接口。并运行一个gRPC服务器来处理客户端调用。在客户端拥有一个存根能够向服务端一样的方法。

补充一个知识点(HTTP/2 与HTTP1.X的区别)

用于数据传输的二进制分帧

HTTP/2采用二进制格式传输协议,而非HTTP/1.x的文本格式。

img

多路复用

HTTP/2支持通过同一个连接发送多个并发的请求。

HTTP/1.x虽然通过pipeline也能并发请求,但多个请求之间的响应依然会被阻塞。

 

服务端推送

服务端推送是一种在客户端请求之前发送数据的机制。在HTTP/2中,服务器可以对客户端的一个请求发送多个响应。而不像HTTP/1.X一样,只能通过客户端发起request,服务端才产生对应的response

减少网络流量的头部压缩。

HTTP/2对消息头进行了压缩传输,能够节省消息头占用的网络流量。至于如何压缩的,可以查看这篇:HPACK: Header Compression for

    

Server-Sent Events、WebSocket 和 HTTP

橙色网站目前正在讨论一篇关于 Server-Sent Events 的文章,特别是与 WebSockets(以及新兴的WebTransport)相比。文章和讨论都很有见地,但我认为他们遗漏了一个具有相当深远影响的方面。

中介很重要

许多年前,当我在一个超大型网站的基础设施团队工作时,浏览器开始支持 WebSockets,该网站上的各种属性(新闻、体育、娱乐等)都对它提供的可能性感到兴奋. 他们需要扩展 WebSockets 而我们想要支持它们,所以我们询问他们希望我们实现哪个库——实际上是哪个协议。

        

对于网络作者和网站管理员的缓存教程

  1. 什么是网络缓存?人们为什么要使用它们?
  2. Web缓存的种类
    1. 浏览器缓存
    2. 代理缓存
  3. Web 缓存对我来说不是坏事吗?我为什么要帮助他们?
  4. Web 缓存的工作原理
  5. 如何(以及如何不)控制缓存
    1. HTML 元标记与 HTTP 标头
    2. Pragma HTTP 标头(以及为什么它们不起作用)
    3. 使用 Expires HTTP 标头控制新鲜度
    4. 缓存控制 HTTP 标头
    5. 验证器和验证
  6. 构建缓存感知站点的技巧
  7. 编写缓存感知脚本
  8. 经常问的问题
  9. 实施说明 - Web 服务器
  10. 实施说明——服务器端脚本
  11. 参考资料和更多信息
  12. 关于本文档

什么是网络缓存?人们为什么要使用它们?

我想谈谈 WebGPU

WebGPU 是新的 WebGL。这意味着它是在网络浏览器中绘制 3D 的新方法。在我看来,这实际上非常好。它太好了,我认为它也将取代 Canvas 并成为在 Web 浏览器中绘制 2D 的新方式。事实上,它非常好,我认为它将取代Vulkan以及普通的 OpenGL,并成为在任何类型的软件中使用任何编程语言进行绘图的标准方式。这让我很兴奋。WebGPU 有点让人恼火——但只是一点点,而且它比它所取代的任何东西都要小得多。

网址的url结尾应该不应该带斜杠

网址的url结尾应该不应该带斜杠

带与不带斜杠"/"是不同的网址.

特别是相对url,

如果 你访问https://www.p2hp.com/about  ,里面有个<a href="info">info</a>,则它将链接到https://www.p2hp.com/info.

而如果你访问https://www.p2hp.com/about/(一般返回同样的内容),则里面的<a href="info">info</a>,将链接到https://www.p2hp.com/about/info.

 

但根目录带不带/是一样的

如:http://www.p2hp.com 和http://www.p2hp.com/ 是一样的.

 

已测试.

 

参考:

https://blog.cdivilly.com/2019/02/28/uri-trailing-slashes

https://stackoverflow.com/questions/5948659/when-should-i-use-a-trailing-slash-in-my-url

https://www.cloudways.com/blog/trailing-slashes-urls/

https://ahrefs.com/blog/zh/trailing-slash/

 

 

        

git-flow[实战系列]

安装

windows 安装git之后貌似自带git flow

初始化

composer init,git init 一样,git flow 也需要初始化,初始化之后会有两个分支 master,develop

//可以重命名各分支
$ git flow init
Initialized empty Git repository in /Users/tobi/acme-website/.git/
//生产分支,如果有用到gogs,gitlab等工具,合并master代码需要审核的情况下,master要用别的名字,例如gitflowmaster

错误日志级别

错误日志级别

RFC 5424描述的日志级别。

  • DEBUG (100):详细调试信息。
  • INFO (200):有趣的事件。示例:用户登录、SQL 日志。
  • NOTICE(250):正常但重要的事件。
  • WARNING(300):不是错误的异常事件。示例:使用已弃用的 API、API 使用不当、未必是错误的不良行为。
  • ERROR (400):不需要立即采取行动但通常应记录和监视的运行时错误。
  • CRITICAL (500):临界条件。示例:应用程序组件不可用,意外异常。
  • ALERT(550):必须立即采取行动。示例:整个网站宕机、数据库不可用等。这应该会触发 SMS 警报并唤醒您。
  • EMERGENCY (600):紧急情况:系统不可用。