分类目录归档:未分类

http304是怎么产生的。(选自《图解HTTP》-上野宣)


该状态码表示客户端发送附带条件的请求(附带条件的请求是指采用GET方法的请求报文中包含If-Match,If-Modified-Since,If-None-Match,If-Range,If-Unmodified-Since中任一首部。)时,服务器端允许请求访问资源,但因发生请求未满足条件的情况后,直接返回304 Not Modified(服务器端资源未改变,可直接使用客户端未过期的缓存)。304状态码返回时,不包含任何响应的主体部分。304虽然被划分在3XX类别中,但是和重定向没有关系。

附带条件请求


形如If-xxx这种样式的请求首部字段,都可称为条件请求。服务器接收到附带条件的请求后,只有判断指定条件为真时,才会执行请求。

If-Modified-Since

是这样产生304的

If-Match和ETag


上图中显示的200是不是应该是304啊?

使用阿里云的免费CA证书服务为自己的网站开通https

购买证书

  1. 首先登录阿里云的控制台,选择“安全(云盾)”目录下的CA证书服务

  2. 点击右上角的“购买证书”按钮

  3. 找到免费的证书,阿里云的免费证书藏的比较深

    1. 在保护类型里选择“一个域名”

    2. 选择品牌“Symantec”

    3. 证书类型里才会出现免费的,选择“免费型DV SSL”

  4. 购买并支付

生成并下载证书

  1. 打开证书管理页面

  2. 在证书列表里点击“补全”

  3. 填写域名信息

  4. 填写个人信息

  5. 提交

  6. 审核完成之后就可以在证书管理页面下载证书了

  7. 点击下载之后会打开下载证书的页面,选择对应的服务器的证书下载即可

安装证书(nginx)

  1. 在Nginx的安装目录下创建cert目录,并且将下载的全部文件拷贝到cert目录中。如果申请证书时是自己创建的CSR文件,请将对应的私钥文件放到cert目录下并且命名为214499409770626.key;

  2. /etc/nginx/sites-available里创建一个新的网站配置文件(以下属性中ssl开头的属性与证书配置有直接关系,其它属性请结合自己的实际情况复制或调整)

    server {
        listen 443;
        server_name [你的域名];
        ssl on;
        root /var/www/html;
        index index.php index.html index.htm index.nginx-debian.html;
        ssl_certificate   cert/[你的证书名字].pem;
        ssl_certificate_key  cert/[你的证书名字].key;
        ssl_session_timeout 5m;
        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_prefer_server_ciphers on;
        location / {
            root html;
            index index.html index.htm;
        }
    }
    
  3. 创建一个连接,把你刚才编辑的文件连接到/etc/nginx/sites-enabled目录下

  4. 重启 Nginx

  5. 通过 https 方式访问您的站点,测试站点证书的安装配置。