HTTP学习笔记04 - 未来已来的HTTP2


HTTP/1当前的困境

当今的web,已经不再是当年的纯粹的一个展示性页面,而是基于浏览器的应用(browser-server application)。同时越来越多的页面元素导致页面需要加载的资源也日益增多。alexa排名前100的web站点上,平均每个页面需要加载的资源最少也会有大几十个。同时出于性能考虑,在浏览器里每个域名同时可以打开的连接数最多不超过8个。这就导致了每个连接最少也要处理10个左右的请求才能保证整个页面加载完毕。这势必会消耗大量的时间!

对于这些问题,我们通常会从以下几个方面进行优化:

  1. 异步接口合并(Batch Ajax Request)
  2. 图片合并,雪碧图(CSS...

Read more

HTTP学习笔记03 - http method


概述

HTTP 定义了一组请求方法, 以表明要对给定资源执行的操作。通过请求方法向服务器表明针对给定资源要执行的期望动作。 虽然他们也可以是名词, 但这些请求方法一般被称为HTTP动词.。每一个请求方法都实现了不同的语义。

HTTP METHOD是根据HTTP的使用场景不断增加完善的: HTTP/0.9中只有GET方法。 HTTP/1.0时增加了POST和HEAD。 HTTP/1.1增加了OPTIONS,PUT,PATCH,DELETE,TRACE和CONNECT这5种方法。

GET

向指定的资源发出“显示”请求。使用GET方法应该只用在读取数据,而不应当被用于产生“副作用”的操作中,例...

Read more

HTTP学习笔记02-常见状态码


所有HTTP响应的第一行都是状态行,依次是当前HTTP版本号,3位数字组成的状态代码,以及描述状态的短语,彼此由空格分隔。

状态代码的第一个数字代表当前响应的类型:

1xx消息:请求已被服务器接收,继续处理

2xx成功:请求已成功被服务器接收、理解、并接受

3xx重定向:需要后续操作才能完成这一请求

4xx请求错误:请求含有词法错误或者无法被执行

5xx服务器错误:服务器在处理某个正确请求时发生错误

虽然 RFC 2616 中已经推荐了描述状态的短语,例如"200 OK","404 Not Found",但是WEB开发者仍然能够自行决定采用何种短语,用以显示本地化的状态描述或者自定义信息...

Read more

用Python写测试用例


代码是为了什么,当然是为了重复运行。如何保持单元测试代码的稳定?主要靠好的API设计。API切实正确切割了需求,那么在重构的时候API就基本不用变化,测试用例也不用重写。以后你重构的时候,只要你的测试用例覆盖的够好,基本跑一遍就知道有没有改出问题。这样可以节省大量的时间。

从这段话里可以得到2个信息:

  1. 良好的API设计保证在很大程度上避免重写unit test
  2. 覆盖率良好的unit test可以让你重构代码的时候省心省力。

什么是单元测试

unit test is the idea that they are tests in isolation of individual comp...

Read more

本站支持HTTPS了


今天用letsencrypt的certbot给本站加上了HTTPS证书。

同时,也对本站添加了HTTP请求自动跳转到HTTPS请求的路由规则,因此,后续本站的所有流量都是HTTPS了。

希望baidu之前说的HTTPS站点的收录会比HTTP更友好是真的。

最后,Hello, The HTTPS world. :)

Read more

HTTP协议学习笔记01 - HTTP协议发展史


HTTP(Hypertext Transfer Protocol)

即超文本传输协议,是互联网上应用最广泛的一种网络协议。设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法。通过HTTP或者HTTPS协议请求的资源由统一资源标识符(Uniform Resource Identifiers,URI)来标识。

超文本传输协议(英文:HyperText Transfer Protocol,缩写:HTTP)是一种用于分布式、协作式和超媒体信息系统的应用层协议。HTTP是万维网的数据通信的基础。

设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法。通过HTTP或者HTT...

Read more

docker-cheetsheet


列出当前机器上所有的docker镜像

docker images

docker登录

docker login login_url

docker 获取当前运行的容器

docker ps

docker 打tag

docker tag a26187b7b13c target_tag

docker 导出镜像

docker save -o image.tar image_id

docker 导入镜像

docker load -i image.tar

docker导出container

docker export container_id > container.tar

docker导入con...

Read more

Hello World


在犹豫了很久之后,终于下定决心要做一个数据自己的小站了。希望用这个小站来记录一下个人在人生这趟单程车上的一些美好的瞬间。

Read more