• 读《图解HTTP》


    关于HTTP的知识,七七八八也了解过一些,总觉得很零散。

    如果去翻看三卷本的TCP/IP的话,倒是大而全了,关键是,看得下去么?

    某天看到有人推荐这么一本书《图解HTTP》,说浅显易懂而又不失风趣。翻了一下确实如此,于是来作个笔记。

    1. 简介

    目前主流的HTTP协议版本是1997年1月公布的1.1,最初的标准是RFC2068,之后发布了修订版RFC2616. 而新一代2.0正在制订中。

    现在HTTP协议已经超出了web这个框架的局限,被运用到了各种场景里。

    疑问:(是么?还有什么场景?)

    2. 简单的HTTP协议

    HTTP用于客户端和服务器端之间的通信,请求必定由客户端发出,服务器端回复响应。

    请求报文包括:方法,uri,协议版本,请求首部字段,内容实体

    响应报文包括:协议版本,状态码,用以解释状态码的原因短语,可选的响应首部字段以及实体主体

    HTTP协议自身不具备保存之前发送过的请求或响应的功能,有了cookie再使用HTTP协议通信,就可以管理状态了。

    请求URI的方式

    • URI为完整的请求URI

    • 在首部字段host中写明网络域名或IP地址

    如果是对服务器本身发起请求,可以用一个*来代替请求URI,如:OPTIONS * HTTP/1.1

    告知服务器意图的HTTP方法

    • get 获取资源

    • post 传输实体主体

    • put 传输文件

    鉴于HTTP 1.1的put方法自身不带验证机制,因此一般web网站不使用该方法。若配合web应用程序的验证机制,或架构设计采用REST标准的同类网站,就可能会开放使用put方法。

    • head 获得报文首部

    • delete 删除文件

    和put一样不带验证机制。当配合web应用程序的验证机制,或遵守REST标准时还是有可能会开放使用的。

    • options 询问支持的方法

    • trace 追踪路径

    • connect 要求用隧道协议连接代理

    持久连接

    HTTP协议的初始版本中,每进行一次HTTP通信就要断开一次TCP连接。

    随着HTTP普及,文档中包含大量图片的情况变多,发送请求访问HTML页面资源的同时,也会请求该HTML页面里面包含的其他资源。这样,每次请求都会造成无谓的TCP连接建立和断开,增加通信量的开销。

    持久连接(HTTP Persistent Connections, 也称为HTTP keep-alive 或 HTTP connection reuse),特点是,只要任意一端没有明确提出断开连接,则保持TCP连接状态。

    在 HTTP 1.1 中,所有的链接默认都是持久连接。持久连接旨在建立1次TCP连接后进行多次请求和响应的交互。

    管线化

    持久连接使得多数请求以管线化 (pipellining) 方式发送成为可能。
    管线化技术出现后,不用等待相应亦可直接发送下一个请求。这样就能做到同时并行发送多个请求,而不需要一个接一个地等待响应了。

    使用cookie的状态管理

    Cookie技术通过在请求和响应报文中写入 Cookie信息来控制客户端的状态。

    Cookie会根据从服务器端发送的响应报文内的一个叫做 Set-Cookie的首部字段信息,通知客户端保存Cookie。当下次客户端再往该服务器发送请求时,客户端会自动在请求报文中加入 Cookie值后发送出去。

    服务器端发现客户端发送过来的 Cookie后,会去检查究竟是从哪一个客户端发来的连接请求,然后对比服务器上的记录,最后得到之前的状态信息。

    HTTP状态码
    类别 原因短语
    1xx 信息性状态码
    2xx
    3xx
    4xx
    5xx

    经常使用的状态码大概有14种

    HTTP首部字段类型
    通用
    请求
    响应
    实体

    具体的字段和详细内容,用到的时候再查文档,太细的东西也不用背下来,用的时候拿来就好。

    确保安全的HTTPS

    tcpip是可能被窃听的网络
    加密处理方法
    通信的加密
    内容的加密

    HTTP+加密+认证+完整性保护=HTTPS

    HTTPS是身批ssl外壳的HTTP
    通信接口部分用ssl和tls协议代替
    ssl是独立与HTTP的协议,是当今世界上应用最为广泛的网络安全技术

    https采用共享密钥加密和公开密钥加密两者并用的混合加密机制。
    在交换密钥环节使用公开密钥加密方式,之后的建立通信交换报文阶段则使用共享密钥加密方式。
    使用ca和其相关机关颁发的公开密钥证书。
    要进行https通信,证书是必不可少的。

    然后下面还介绍了几种证书,有需要的时候可以再翻书。

    HTTPs的安全通信机制

    web的攻击技术
    这个可以稍微了解一下

    (未完待续)

  • 相关阅读:
    ORACLE 按照指定顺序排序输出某些字段
    jsp 选择年份产生周下拉框
    jsp标签foreach
    润乾报表个人笔记
    eclipse加大服务器容器内存
    jsp input中使用fmt 格式化时间
    log4j简单使用java web项目--后台打印以及输出到文件
    log4j简单使用java项目--后台打印以及输出到文件
    声明:放弃博客园平台,近日将所有随笔转移到CSDN,并删除所有已公开的随笔。
    项目 Java 2 go的一些准备活动
  • 原文地址:https://www.cnblogs.com/cynthiaw/p/9391919.html
Copyright © 2020-2023  润新知