分类目录归档:HTTP协议

HTTP学习笔记08 - 如何申请HTTPS证书


根据签发证书的CA的不同,证书可以分为2种:

  1. 由自己创建的CA签发的证书,通常叫做自签名证书;
  2. 由PKI的CA签发的证书,具有普遍可信的证书。

自签名证书

之前12306的证书就是一个自签名证书,所以浏览器第一次打开12306的官网时,会被提示不安全。但是现在已经改为由PKI签发的证书,可以正确通过浏览器的证书检查了。 但是,这并不意味着自签名证书就没有用。比如在内网中,为了测试或者部署内部服务,为了成本考虑,可以签发一些自签名证书,由于时内网环境,我们已经100%确认对方的身份,所以就不需要PKI来帮助我们校验证书是否正确。

使用openssl创建自签名证书:

制作CA证书:

1....

Read more

HTTP学习笔记07 - HTTPS证书介绍


什么是TLS/SSL证书

SSL证书跟驾照有点类似。在驾照里,关键信息有几点:

  1. 我是谁
  2. 驾照是谁颁发的
  3. 驾照是否过期

在SSL证书里也是类似的:

  1. 我是谁(域名、实体是谁)
  2. 证书是由谁签发的
  3. 证书是否过期

所以,一个SSL证书可以这么定义:由无条件信任的机构颁发给实际使用者来提供身份认证的一段数据编码。

证书的编码

X.690定义了ASN.1用到的几种编码格式:

  1. Basic Encoding Rules(BER)
  2. Canonical Encoding Rules(CER)
  3. Distinguished Encoding Rules(DER)

其中: BER是最基本的编码格式。CE...

Read more

HTTP学习笔记06 - 安全的HTTP的好帮手


SSL协议背景

在互联网设计之初,设计者并没有太过于考虑安全方面的问题,因此,在网络上传输的数据都是明文的,也就意味着,任何一个恶意的攻击者都可以得到我们提交的任何数据,这会带来3类风险:

  1. 数据窃听(eavesdropping): 第三方可以获知信息内容
  2. 数据篡改(tampering): 第三方可以修改通信内容
  3. 身份冒充(pretending): 第三方可以冒充他人身份参与通信

SSL&TLS协议的出现正是为了解决这3类问题,希望可以达到:

  1. 所有信息都是加密传输,第三方无法窃听
  2. 具有校验机制,一旦被篡改,通信双方会立刻发现
  3. 具备身份证书,防止身份被冒充 从而实现在“不安全”...

Read more

HTTP学习笔记05 - 安全的HTTP


为什么HTTP不安全

HTTP作为互联网上应用最为广泛的一种网络协议,目前最常见的版本有HTTP1.0, HTTP1.1和HTTP2。其中HTTP1.0和1.1版本传输为Text,也就是明文传输。而HTTP2传输的是二进制数据。但是如果不对数据进行加密处理的话,不管是二进制还是明文,都会存在很多安全风险,比如:数据篡改,身份伪造,中间人窃听等。

HTTPS (Secure Hypertext Transfer Protocol)

即安全超文本传输协议,它是在基于TLS/SSL的HTTP协议,可以理解为HTTP的安全版。HTTPS的主要作用是:

  1. 对数据进行加密,并建立一个安全信道来保证传...

Read more

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

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