sunyongjian/blog

some keywords

Opened this issue · 3 comments

记录一些关键字,知识点

  • Preflight request
    这个问题是有CROS(W3C标准,Cross-origin resource sharing)引起的。当触发非简单请求,PUT或DELETE,或者Content-Type字段的类型是 application/json 的,在正式通信之前,会增加一次HTTP查询请求,称为"预检"请求(preflight),这个请求的 method 是 OPTIONS...

  • 控制反转
    一种是面向对象编程中的一种设计原则,用来减低计算机代码之间的耦合度。其基本**是:借助于“第三方”实现具有依赖关系的对象之间的解耦。如果这种**在以后的代码中有重要的作用,就好好研究一下。

  • 依赖注入
    就是将实例变量传入到一个对象中去。

  • contenteditable
    h5里面让div编程Textarea的属性, ie很早就支持了,兼容性ok

    <div id="textarea" contenteditable="true"></div>
    
  • 迁移到https不一定绝对安全
    上https。但是用户不一定会输入https,说不定还是http,这时候有的攻击会把用户点击的页面中的https都替换成http,就相当于没有https了。这时候使用hsts协议会可以解决,STS的作用是强制客户端(如浏览器)使用HTTPS与服务器创建连接。服务器开启HSTS的方法是,当客户端通过HTTPS发出请求时,在服务器返回的超文本传输协议响应头中包含Strict-Transport-Security字段。非加密传输时设置的HSTS字段无效。
    比如,https://xxx 的响应头含有Strict-Transport-Security: max-age=31536000; includeSubDomains。这意味着两点:
    在接下来的一年(即31536000秒)中,浏览器只要向xxx或其子域名发送HTTP请求时,必须采用HTTPS来发起连接。比如,用户点击超链接或在地址栏输入 http://xxx/ ,浏览器应当自动将 http 转写成 https,然后直接向 https://xxx/ 发送请求。
    在接下来的一年中,如果 xxx 服务器发送的TLS证书无效,用户不能忽略浏览器警告继续访问网站

  • content-length
    Conent-Length表示实体内容长度,客户端(服务器)可以根据这个值来判断数据是否接收完成。没有 length 呢? http://blog.csdn.net/yankai0219/article/details/8269922

  • webpack-error-detail
    当 webpack 报错,又找不到问题所在的时候,加 --display-error-details 参数查看错误详情可能会有奇效。

http 相关的知识还是很重要的,基础太薄弱... 还是从头学 http 权威指南吧

content-type: application/octet-stream 是干嘛的?
应用程序文件的默认值,即二进制流类型的文件,是未知的应用程序文件。比如上传一个无后缀名的文件,采用的 content-type 就是 application/octet-stream。同样浏览器下载也是,是不会主动询问的类型。
另外,注意有的云服务器默认的 Nginx 配置中,default_type 也会是这个。

  • 迁移到https不一定绝对安全
    上https。但是用户不一定会输入https,说不定还是http,这时候有的攻击会把用户点击的页面中的https都替换成http,就相当于没有https了。

在 nginx 中設定使用者 request http 時自動強迫成 https 即可