博客写了这么多年,数量一直没上去。大部分时候遇上有意思的东西,研究明白之后只是多了几篇收藏,或者是 Evernote 里多了几段零散的记录,又或者是电脑某个文件夹多了几个 Demo 文件。很难再有耐心和精力把整个过程记录一遍。这里把本站部分文章以专题的形式整理出来,一方面方便新同学阅读,另一方面也希望借此激励自己:能在这个浮躁的时代,坚持阅读和写作。查看本站文章统计。
HTTP/2 相关
随着 2015 年 5 月 14 日 HTTP/2 协议正式版的发布,越来越多的网站和第三方 CDN 服务开始启用 HTTP/2。HTTP/2 是新一代的 HTTP,也是 HTTP 的未来。本专题记录我的 HTTP/2 研究与实践。
- 谈谈 Nginx 的 HTTP/2 POST Bug (Aug 20, 2016)
- 为什么我们应该尽快支持 ALPN? (May 18, 2016)
- 谈谈 HTTP/2 的协议协商机制 (Apr 14, 2016)
- 使用 nghttp2 调试 HTTP/2 流量 (Mar 07, 2016)
- 从启用 HTTP/2 导致网站无法访问说起 (Jan 17, 2016)
- 基于 HTTP/2 的 WEB 内网穿透实现 (Nov 23, 2015)
- HTTP/2:新的机遇与挑战 (Nov 22, 2015)
- HTTP/2 头部压缩技术介绍 (Oct 25, 2015)
- 使用 Wireshark 调试 HTTP/2 流量 (Oct 24, 2015)
- H2O 中的 Cache-Aware Server Push 简介 (Oct 21, 2015)
- HTTP/2 资料汇总 (Aug 31, 2015)
- Nginx 开始支持 HTTP/2 了 (Aug 16, 2015)
- HTTP/2 中的 Server Push 讨论 (Jun 16, 2015)
- 开始使用 HTTP/2 (Jun 07, 2015)
- HTTP/2 与 WEB 性能优化(三) (Jun 01, 2015)
- HTTP/2 与 WEB 性能优化(二) (May 22, 2015)
- HTTP/2 与 WEB 性能优化(一) (May 19, 2015)
- SPDY 3.1 中的请求 / 响应头 (Mar 15, 2014)
HTTP 相关
HTTP 是互联网的基础,也是每个前端开发工程师必备技能之一。本专题记录我的 HTTP 学习笔记和心得。
- 记一次图片访问异常排查过程 (Apr 28, 2023)
- HTTP Alternative Services 介绍 (Aug 21, 2016)
- 关于启用 HTTPS 的一些经验分享(三) (May 05, 2016)
- 如何压缩 HTTP 请求正文 (Apr 18, 2016)
- HTTP 协议中的 Content-Encoding (Apr 17, 2016)
- 三种解密 HTTPS 流量的方法介绍 (Mar 28, 2016)
- HTTP Public Key Pinning 介绍 (Mar 05, 2016)
- 关于启用 HTTPS 的一些经验分享(二) (Dec 22, 2015)
- 关于启用 HTTPS 的一些经验分享(一) (Dec 04, 2015)
- HTTP 代理原理及实现(二) (Nov 20, 2015)
- HTTP 代理原理及实现(一) (Nov 20, 2015)
- Content Security Policy Level 2 介绍 (Oct 05, 2015)
- HTTP Client Hints 介绍 (Sep 10, 2015)
- 浏览器中常见网络协议介绍 (Jun 03, 2015)
- Referrer Policy 介绍「续」 (May 11, 2015)
- Referrer 还是 Referer? (May 09, 2015)
- Referrer Policy 介绍 (May 06, 2015)
- HTTP 协议中的 Transfer-Encoding (May 04, 2015)
- HTTP 请求头中的 X-Forwarded-For (May 02, 2015)
- HTTP 协议中 Vary 的一些研究 (Jan 01, 2014)
- 本博客正式启用 HTTPS (Nov 22, 2013)
- Http 请求头中的 Proxy-Connection (Aug 26, 2013)
- 四种常见的 POST 提交数据方式 (Aug 21, 2013)
- 一些安全相关的HTTP响应头 (Jul 23, 2013)
- Content Security Policy 介绍 (Jul 22, 2013)
- 你所不知道的HostOnly Cookie (Jul 10, 2013)
- 如何获取浏览器的DNS解析时间 (Jan 07, 2012)
JavaScript 漫谈
JavaScript 博大精深而妙趣横生,关于 JavaScript 的话题几天几夜也说不完。
- 改进 ThinkJS 的异步编程方式 (May 15, 2015)
- BOM 和 JavaScript 中的 trim (Dec 07, 2013)
- AMD 的 CommonJS wrapping (Dec 05, 2013)
- FileSystem API 实现文件下载器 2 (Oct 01, 2013)
- 用 FileSystem API 实现文件下载器 (Oct 01, 2013)
- ES6 中的 Set、Map 和 WeakMap (Sep 23, 2013)
- ES6 中的生成器函数介绍 (Sep 20, 2013)
- 尝试 ES6 中的箭头函数 (Sep 11, 2013)
- 使用 Canvas 绘制背景图 (Aug 18, 2013)
- 异步编程:When.js快速上手 (Jun 23, 2013)
- JavaScript动画漫谈 (Nov 15, 2012)
- [小Tip]JavaScript转整数杯具两则 (Dec 30, 2011)
- 也谈跨域数据交互解决方案 (Sep 12, 2011)
- 使用浏览器原生函数优化动画 (Jun 20, 2011)
浏览器
有人说感谢各种奇奇怪怪的浏览器,给了前端开发工程师饭碗。
- iOS 10 Safari 视频播放新政策 (Oct 07, 2016)
- Chrome 中 scrollingElement 的变化 (Apr 16, 2016)
- 域名小知识:Public Suffix List (Nov 28, 2015)
- window.opener.location 安全风险讨论 (Oct 09, 2015)
- 使用 SRI 增强 localStorage 代码安全 (Sep 26, 2015)
- Subresource Integrity 介绍 (Sep 23, 2015)
- 移动 Web 与 JavaScript 定时器 (Mar 27, 2014)
- Chrome 和 Web Fonts 二三事 (Mar 24, 2014)
- Webkit 异步加载 CSS 的奇怪现象 (Dec 25, 2013)
- 小成本实现部分选中的复选框 (Dec 22, 2013)
- Chrome 滚动条冻结现象 (Dec 02, 2013)
- Chrome 31 的一个 Bug(已修复) (Nov 14, 2013)
- iOS7 中 Safari 的一个离奇 Bug (Oct 08, 2013)
- 不会被 iOS 停掉的网页定时器 (Sep 25, 2013)
- IE 的浏览器模式和文本模式(二) (Sep 07, 2013)
- [小Tip]Webkit下设置hash的一个坑 (Jul 19, 2012)
- [小Tip]IE9中focus执行顺序差异 (Jul 10, 2012)
- Webkit下最无敌的跨大域方案 (Mar 02, 2012)
- 关于浏览器模式和文本模式的困惑 (Feb 08, 2012)
- 一个浏览器诊断小工具 (Jan 01, 2012)
- [小Tip]下载.lnk遇到的怪事 (Nov 29, 2011)
- IE10 Platform Preview 2 (Jul 04, 2011)
- IE9、Opera11.10和firefox4 (Mar 21, 2011)
- Maxthon引发的系列问题 (Sep 20, 2008)
Web 服务器
要学好 HTTP 协议,浏览器和 Web 服务器两个端都需要玩透。
- 本博客开始支持 TLS 1.3 (Aug 06, 2017)
- HTTPS 常见部署问题及解决方案 (Dec 12, 2016)
- 开始使用 VeryNginx (Dec 10, 2016)
- 开始使用 ECC 证书 (Aug 27, 2016)
- 为什么我们应该尽快升级到 HTTPS? (May 16, 2016)
- 本博客 Nginx 配置之完整篇 (Mar 21, 2016)
- 从无法开启 OCSP Stapling 说起 (Mar 13, 2016)
- Certificate Transparency 那些事 (Feb 03, 2016)
- Let's Encrypt,免费好用的 HTTPS 证书 (Dec 25, 2015)
- 从 Nginx 默认不压缩 HTTP/1.0 说起 (Dec 15, 2015)
- TLS 握手优化详解 (Nov 08, 2015)
- 使用 BoringSSL 优化 HTTPS 加密算法选择 (Oct 15, 2015)
- 本博客 Nginx 配置之性能篇 (May 27, 2015)
- 本博客 Nginx 配置之安全篇 (May 24, 2015)
- 针对不同主机使用不同 SSH Key (Apr 19, 2015)
- Django博客系统部署小结 (Mar 26, 2011)
开发工具
工欲善其事必先利其器。作为一名前端开发工程师,熟练使用各种工具对提升工作效率很有帮助。
- 开始使用 Vagrant (Aug 23, 2015)
- 搭建 ngrok 服务实现内网穿透 (Apr 19, 2015)
- Chrome 32 开发者工具的几个变化 (Jan 19, 2014)
- Genymotion:超赞的安卓虚拟机 (Nov 28, 2013)
- 打造 Mac 下的完美开发环境 (Oct 09, 2013)
- 如何在 Mac 下使用 Fiddler (Sep 13, 2013)
- 看懂 Fiddler 的瀑布图 (Sep 04, 2013)
- firebug1.12 更新 (Aug 29, 2013)
- [小Tip]用好浏览器的控制台 (Aug 11, 2013)
- firebug1.10更新 (Jul 16, 2012)
- [小Tip]ABP扩展对前端开发的影响 (Mar 29, 2012)
- 用Weinre远程调试移动网页 (Mar 14, 2012)
- 让Sublime Text2支持浏览器中预览 (Feb 20, 2012)
- Sublime Text2:超赞的现代编辑器 (Dec 23, 2011)
- 用Opera Mobile调试手机版网页 (Jul 19, 2011)
- 用Fiddler来调试web应用 (Jan 11, 2009)
好玩的 HTML5
这里列举了一些使用 HTML5 中新增的 Canvas、Video 等特性实现的好玩功能。
- 利用图片传输数据的另类思路 (Mar 10, 2016)
- 像素化你的代码 (Sep 19, 2015)
- HTML5 视频直播(三) (May 01, 2015)
- HTML5 视频直播(二) (Apr 25, 2015)
- HTML5 视频直播(一) (Apr 24, 2015)
- 1.5kb 代码让图片抖起来 (Aug 11, 2014)
- [彩蛋]这是什么? (Dec 13, 2012)
Web 产品思考
对 Web 产品、交互及其技术实现的思考与反思。
- 页面动画滚动的交互细节 (Dec 08, 2013)
- 两个常见的 Affix 交互问题 (Nov 25, 2013)
- 中英文混排及中文引号 (Sep 10, 2013)
- 关于提高 Tab 切换速度的思考 (Jul 01, 2013)
- 页面变灰二三事 (Apr 22, 2013)
- Chrome扩展与用户隐私 (Mar 20, 2013)
- 如何更好的使用Cookie (Jun 19, 2012)
- 图片自动旋转的前端实现方案 (Feb 15, 2012)
- FaceBook的NoScript策略 (Sep 10, 2011)
- 一种效果还不错的图片排列策略 (Jul 12, 2011)