HTTP2 協議長文詳解

  • 2022 年 11 月 30 日
  • 筆記

一、HTTP2 简介 HTTP2 是一个超文本传输协议,它是 HTTP 协议的第二个版本。HTTP2 主要是基于 google 的 SPDY 协议,SPDY 的关键技术被 HTTP2 采纳了,因此 SPDY 的成员全程参与了 HTTP2 协议制定过程。 HTTP2 是由互联网工程任务组 (IETF) …

Continue Reading

一個有趣的nginx HTTP 400響應問題分析

  • 2022 年 11 月 30 日
  • 筆記

背景 之前在 一次不规范HTTP请求引发的nginx响应400问题分析与解决 中写过客户端query参数未urlencode导致的400问题,当时的结论是: 对于query参数带空格的请求,由于其不符合HTTP规范,golang的net/http库无法识别会直接报错400,而nginx和使用uwsg …

Continue Reading

使用 Go HTTP 框架 Hertz 進行 JWT 認證

  • 2022 年 11 月 17 日
  • 筆記

前言 上一篇文章 简单介绍了一个高性能的 Go HTTP 框架—— Hertz ,本篇文章将围绕 Hertz 开源仓库的一个 demo ,讲述如何使用 Hertz 完成 JWT 的认证与授权流程。 这里要说明的是, hertz-jwt 是 Hertz 众多外部扩展组件之一,Hertz 丰富的扩展生态 …

Continue Reading

真正「搞」懂HTTP協議04之搞起來

  • 2022 年 11 月 16 日
  • 筆記

前两篇文章,我们从空间和时间的角度都对HTTP有了一定的学习和理解,那么基于 上一篇 的HTTP发展的时间顺序,我会在后面的文章由浅入深,按照HTTP版本内容的更迭,一边介绍相关字段的使用方法,一边讲解其特性和目的,并和大家一起手写测试代码,学以致用。 当然在真正进入时间线之前,我们还还需要一些前置 …

Continue Reading

有趣的 Go HttpClient 超時機制

  • 2022 年 11 月 15 日
  • 筆記

hello,大家好呀,我是既写 Java 又写 Go 的小楼,在写 Go 的过程中经常对比这两种语言的特性,踩了不少坑,也发现了不少有意思的地方,今天就来聊聊 Go 自带的 HttpClient 的超时机制。 Java HttpClient 超时底层原理 在介绍 Go 的 HttpClient 超时 …

Continue Reading

真正「搞」懂HTTP協議03之時間穿梭

  • 2022 年 11 月 7 日
  • 筆記

上一篇 我们简单的介绍了一下DoD模型和OSI模型,还着重的讲解了TCP的三次握手和四次挥手,让我们在空间层面,稍稍宏观的了解了HTTP所依赖的底层模型,那么这一篇,我们来追溯一下HTTP的历史,看一看HTTP在历史上经历了哪些发展和过程,才让这个协议一直经久不衰。 最开始,在20世纪60年代,也就 …

Continue Reading

真正「搞」懂HTTP協議02之空間穿梭

  • 2022 年 10 月 30 日
  • 筆記

时隔四年,这个系列鸽了四年,我终于觉得我可以按照自己的思路和想法把这个系列完整的表达出来了。 想起四年前,那时候还是2018年的六月份,那时候我还工作不到两年,那时候我翻译了RFC2616的部分内容,发布在了博客园上,并在翻译不久后想要开始整理并学习HTTP相关的知识内容,那时候我以为我可以了。 但 …

Continue Reading

HTTP 優缺點

HTTP 最凸出的优点是「 简单、灵活和易于扩展、应用广泛和跨平台 」。 1. 简单 HTTP 基本的报文格式就是 header + body ,头部信息也是 key-value 简单文本的形式,易于理解,降低了学习和使用的门槛。 2. 灵活和易于扩展 HTTP协议里的各类请求方法、URI/URL、 …

Continue Reading

C#實現HTTP訪問類HttpHelper

在项目开发过程中,我们经常会访问第三方接口,如我们需要接入的第三方接口是Web API,这时候我们就需要使用HttpHelper调用远程接口了。示例中的HttpHelper类使用Log4Net记录了每次调用的请求内容和响应内容的日志,并且每条日志都带上了链路ID和标识,这样方便我们在排查问题时能快速 …

Continue Reading

.Net下的Http請求調用(Post與Get)

http请求调用是开发中经常会用到的功能。在内,调用自有项目的Web Api等形式接口时会用到;在外,调用一些第三方功能接口时,也会用到,因为,这些第三方功能往往是通过http地址的形式提供的,比如:短信服务、在线翻译、地图服务、语音智能、等… http请求调用,又分为Post与Get两种形式。(支 …

Continue Reading