Yi's Blog

如何正确地使用 HTTP Status Code 400

HTTP

大家对 HTTP 状态码一定都不陌生,也能随口说出它们的含义,但真的有仔细考虑过具体的使用场景吗?前两天与一位同学在何时使用状态码 400 这个问题上有了不同意见。
原问题可以细分为如下几个场景:

  1. 业务接口缺少必要的参数,是否可以返回 400 ?
  2. 业务接口收到的 string 类型的参数,转 int 类型失败时,是否可以返回 400 ?
  3. 业务接口的请求体内容在 json 反序列化到 Golang 结构体的过程中失败,是否可以返回 400 ?

读到这里,你的心中是否有了自己的答案?我与朋友一番讨论并搜集资料后,整理总结在此。

阅读全文

MongoDB 新手笔记

MongoDB

说来惭愧,这么多年也没真正去学习过 MongoDB,最近工作中用到了,边用边学。

文章标题写的是新手笔记,但这不是一篇入门教程,而是记录我作为一个新手在使用 MongoDB 过程中遇到的一些疑惑与问题。以下内容基于 MongoDB Server 4.0 测试编写(比如 $convert 方法是在 MongoDB Server 4.0 才加入的),参考时需注意版本。

阅读全文

试用阿里云CDN边缘脚本EdgeScript

AWS Lambda CDN EdgeScript

最初了解函数计算这个概念是从 AWS Lambda 开始的,后来又知道了 Lambda@Edge,我当时学习之后直呼 Amazing,简直强大又灵活,后来我们的很多业务都用 Lambda@Edge 做了架构演进。遗憾的是 Lambda@Edge 这个好东西只有 AWS Global 才能用,国内特供版的 AWS 是没有这个功能的,那就只能寄希望于阿里云国货当自强了。当时的大概是2018年底,跟阿里云也有过沟通,他们有计划要上线一个类似的功能。到了2019年底,阿里云 EdgeScript 上线了,鉴于刚上线的产品通常都不太稳定,我也没有怎关注。转眼时间已经来到了2020年底,我来试用一下阿里云的 EdgeScript,看看功能如何。

阅读全文

Python socket 建立P2P连接测试与总结

Python

最近有这么一个需求,要测试在两台没有公网IP的服务器之间建立P2P连接。经过几天的学习测试,记录在此。

阅读全文

再聊 HTTP Header Vary

CDN HttpHeader

几个月前写过一篇关于 HTTP Header Vary文章。上次它给我带来了一些麻烦,今天再来聊聊它,这次看看它是怎么帮到我的。

阅读全文

CDN预热是怎么回事儿

CDN

做运维工作总免不了跟 CDN 打交道。在我的工作中最常用到的,一个是阿里云 CDN,一个是 AWS CloudFront。由于众所周知的原因,通常我们在国内使用阿里云 CDN,在国外使用 AWS CloudFront。这里我就不比较孰优孰劣了,CDN 技术是一个很大的话题,今天只想简单聊聊 CDN 预热是怎么回事儿。

阅读全文

Terraform Configuration Language常用代码段

Terraform

近两个月写了不少 Terraform 的 Configuration Language, 从入门到熟悉,用起来也渐渐得心应手。从名字上看这是一种配置语言,但得益于 Terraform Provider 强大的可扩展性,它不仅可以像 Golang 或是 Python (Terraform本来就是使用Golang开发的)一样处理字符串,读写本地文件,甚至还可以发起网络请求!

这篇文章既不是教程(初学者建议先看官方文档学习),也不是进阶的知识分享。我在这里记录一些常用的代码段,希望像我一样的新手可以少走些弯路。

阅读全文

JMESPath学习分享

JMESPath

在学习 AWS CLI 文档时偶然了解到 JMESPath,之前从没接触到类似的技术,赶紧学习了一番,顿觉收获颇丰,在此记录分享。

阅读全文

在CDN上配置自定义响应头(CloudFront)

AWS AWS Lambda CloudFront

今天接到一个小需求,要在业务系统的 HTTP 响应中添加几个安全相关的响应头。我的第一反应是在 Kong/Nginx 上配置,但我们的业务现在已经是 ServerLess 架构了,那么就要在 CDN 上做配置了。

我这里业务上用的 AWS CloudFront 和阿里云 CDN,同时我又去看了一下腾讯云 CDN 的配置方式,这里简单对比一下,我想重点说明的是 CloudFront。

阅读全文

Vary response header导致的CDN预热无效

CDN HttpHeader

今年春节被新型冠状病毒(2019-nCoV)困在家里了,哪也不敢去。不过远程工作已经开始了,前两天需要在阿里云CDN上预热一个静态资源,预热后浏览器访问却依旧很慢,响应头表明缓存未命中。咨询了阿里云技术支持,又查找了一些资料,终于搞明白了,详细记录如下。太长不看版请直接跳到文章尾部总结

阅读全文
Prev Next