• HTTP 基本特性

    1、http是超文本传输协议的简称,特点是简单的,无状态的通信协议

    无状态:服务器和客户端之间通过http协议进行通讯,服务器不会保存之前建立连接的状态。
    比如发送一个请求,这是一个全新的请求,并不会记住上一次是谁发送的请求或者请求的状态。
    可以通过cookie和session结合的方式解决。

2、http 报文

http 报文由报文首部和报文主体组成。

请求报文首部:请求行(请求方法,协议以及版本 ,URL 资源定位符地址),请求首部字段;

响应报文首部:请求行(协议以及版本,状态码),响应首部字段;

报文实体:请求参数,返回的响应数据

  • HTTPS 基本特性

    HTTPS 是超文本安全传输协议的简称,特点是安全。

    安全是和http 相比。

    1、http是直接和tcp进行通信,https 和tcp 之间多了一层ssl层,对通信链路和内容进加密。

    HTTPHTTPS
    TCPSSL
    TCP

    2、http 通信数据传输是透明的,不安全的,可以获取到传输的数据,即使加密了也可以获取到加密的数据。

    https 对整合通信链路都进行了加密,同时也对通信的内容也进行加密。

    3、加密方式:对称加密,非对称加密

    对称加密:客户端和服务器共享一个共享密钥,对加密内容进行解密和加密

    缺点:共享密钥在传输过程中容易被获取,不安全

    非对称加密:服务端和客户端各自保留私钥,通过公开密钥进行加密,使用私钥进行解密

    缺点:公开密钥的传输也容易被获取,篡改。

    4、认证证书

    认证证书是为了解决通信过程中,公开密钥和报文内容被篡改和通信双方身份确认的问题。

    认证证书由可靠的第三方机构颁发,通常已经嵌入到浏览器中。

    获取过程

    1、服务器运营方向第三方机构申请证书,第三方机构审核通过后会将公开密钥和数字签名一起放到证书中,发送给服务器运营方;

    2、服务器申请的证书发送给客户端,客户端根据证书的数字签名确认服务端的真实身份,通过之后拿到公开密钥;

    3、在后面的通信中就会使用公开密钥加密,通过私钥进行解密。

    5、缺点:由于多了SSL对数据进行加密解密的过程,会耗费时间和内存等硬件资源

    6、解决方式

    对于敏感的信息,使用非对称加密的方式;

    对于非敏感的信息,使用对称加密的方式,对称加密共享密钥传输,可以采用证书的方式,防止篡改,保证安全性;

  • 缓存机制

    强缓存和协商缓存

    强缓存

    客户端发起请求,判断Cache-control(通用首部字段) 中的max-age 或者Expires(实体首部) 字段,如果都没过期,直接命中缓存。如果没有命中,进入协商缓存。

    协商缓存

    判断字段:last-modify(服务端)/last-modify-since(客户端),if-non-match(客户端)/etag(服务端)

    1、客户端第一次向服务器发起请求,服务端会在响应部分带上last-modify 或者etag 字段的值;

    2、客户端再次发送请求时,会将last-modify或者etag 的值写入到请求首部字段对应last-modify-since和if-non-match字段中;

    3、服务端会比较last-modify和last-modify-since或者etag和if-non-match大小是否相等,相等直接命中缓存,不相等,服务器响应请求,返回新的数据;

    last-modify:优点是产生简单,记录资源的修改时间。缺点是,记录的最小时间单位是秒级别,对秒以下的改动无法感知。

    etag:优点是响应敏感,不依赖时间,只依赖于数据实体的变化,有变化就会重新响应请求。缺点是,产生复杂,根据实体数据的内容等特性,产生的加密字符串。

    对比优先级,响应敏感比较重要,一般使用etag

    TCP/IP 的三次握手
    目的:为了确定服务端和客户端的收发能力都是正常的

    1、第一次握手:客户端给服务端发送数据,服务端收到了,服务端知道客户端发送能力正常,自己的接受能力正常;
    2、第二次握手:服务端给客户端发送数据,客户端收到了,客户端知道服务端发送和接收能力都是正常的,自己的发动能力和接收能力是正常的
    3、第三次握手:客户端发送数据包给服务端,服务端收到了,服务端知道客户端的的收发能力是正常的,自己的收发能力也是正常的,可以建立正常的通信连接。

小明同学
29 声望0 粉丝