概念

  • IaaS, PaaS和SaaS

    以提供用户基于云的各种服务为主,共包含三个层次:其一是 Software as a Service 软件即服务,简称 SaaS ,这层的作用是将应用主要以基于 Web 的方式提供给客户;其二是 Platform as a Service 平台即服务,简称 PaaS ,这层的作用是将一个应用的开发和部署平台作为服务提供给用户;其三是 Infrastructure as a Service 基础设施即服务,简称 IaaS ,这层的作用是将各种底层的计算(比如虚拟机)和存储等资源作为服务提供给用户。

  • HTTP的响应头Vary

    写在前面:Vary 是一个HTTP响应头部信息,它决定了对于未来的一个请求头,应该用一个缓存的回复(response)还是向源服务器请求一个新的回复。它被服务器用来表明在 content negotiation algorithm(内容协商算法)中选择一个资源代表的时候应该使用哪些头部信息(headers)。

  • 四个决策树让你彻底掌握 HTTP 状态码

    四个决策树让你彻底掌握 HTTP 状态码

    该图片由Ian LindsayPixabay上发布

    你好,我是看山。

    众所周知,每一个 HTTP 响应都会带有一个 HTTP 状态码(HTTP Status Code),是用来表示 HTTP 服务器响应状态的代码。它由 RFC 2616 规范定义的,并得到 RFC 2518、RFC 2817、RFC 2295、RFC 2774、RFC 4918 等规范扩展。作为 web 开发者,平时经常 200、301、302、404、500、503 等。最近正在开发一些对外的接口(公司内部各系统间互相调用的接口,也算是内部 Open API 吧),接口调用失败时需要返回一些状态码,考虑借用 HTTP 状态码的含义,可以让调用方通过状态码就能够大体知道出了什么问题,不用彼此重新约定不熟悉的编码规则,方便沟通及错误定位。自认为想法不错,但是在实际编写中遇到了问题,这个多的状态码该怎么用?就用这个机会好好学习下什么场景用什么状态码,也通过本文记录一下 HTTP 状态码的内容。在本文中借 Michael Kropat 的 《Choosing an HTTP Status Code — Stop Making It Hard》 中提供的状态码使用决策树,区分常用状态码的使用场景。

    注:本文提供 HTTP 状态码的状态信息及含义,以及 Michael Kropat 总结的常用状态码决策树。

  • 网络基础:HTTP 服务介绍

    网络基础:HTTP 服务介绍

    你好,我是看山。

    HTTP(Hyper Text Transfer Protocol)即超文本传输协议,采用请求/响应模型,是目前互联网使用最为广泛的一种网络协议。主要的过程:客户端向服务器发送一个请求,请求的请求头包含请求的方法、URI、协议版本、请求修饰符、客户信息、以及请求的内容等信息;服务器以一个状态行作为响应,包括消息协议的版本、成功或者错误编码、服务器信息、实体元信息以及实体内容。http 服务默认端口是 80,https 默认端口是 443。下图为 HTTP 服务简单的处理图。

    http 服务处理图

    本着实用主义,本文对 http 协议的原理不做过多解释,只是分享一下日常使用 Chrome 调试 http 服务的经验,希望能得到同行们的指点。

  • storm笔记:storm基本概念

    本文主要介绍storm中的基本概念,从基础上了解strom的体系结构,便于后续编程过程中作为基础指导。主要的概念包括:

    1. topology(拓扑)
    2. stream(数据流)
    3. spout(水龙头、数据源)
    4. bolt(螺栓,数据筛选处理)
    5. stream group(数据流分组)
    6. reliability(可靠性)
    7. task(任务)
    8. worker(执行者)

    因为上述概念中除了可靠性reliability翻译起来比较合适,其他几个词实在找不到合适的对应词语,就直接使用原词。
    另外一点需要注意的是,本文使用的storm-core版本是0.10.0,包路径为backtype.storm。因为阿里巴巴开源了jstorm,据说strom2.0之后使用jstorm作为master主干,从github上可以看到包路径修改为了org.apache.storm,如果发现有包路径错误的地方,请对应修改。