miscellaneous

  • 整个CORS通信过程,都是浏览器自动完成,不需要用户参与。对于开发者来说,CORS通信与同源的AJAX通信没有差别,代码完全一样。浏览器一旦发现AJAX请求跨源,就会自动添加一些附加的头信息,有时还会多出一次附加的请求,但用户不会有感觉。因此,实现CORS通信的关键是服务器。只要服务器实现了CORS接口,就可以跨源通信。
  • 需要注意的是,如果要发送Cookie,Access-Control-Allow-Origin就不能设为星号,必须指定明确的、与请求网页一致的域名。同时,Cookie依然遵循同源政策,只有用服务器域名设置的Cookie才会上传,其他域名的Cookie并不会上传,且(跨源)原网页代码中的document.cookie也无法读取服务器域名下的Cookie。
  • 非简单请求的CORS请求,会在正式通信之前,增加一次HTTP查询请求,称为”预检”请求(preflight)。一旦服务器通过了”预检”请求,以后每次浏览器正常的CORS请求,就都跟简单请求一样,会有一个Origin头信息字段。服务器的回应,也都会有一个Access-Control-Allow-Origin头信息字段。
  • CORS在预检请求时并不携带cookie信息,故后台此时应该放行。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    //tomcat禁止客户端缓存
    <filter>
    <filter-name>ExpiresFilter</filter-name>
    <filter-class>org.apache.catalina.filters.ExpiresFilter</filter-class>
    <init-param>
    <param-name>ExpiresDefault</param-name>
    <param-value>access 0 seconds</param-value>
    </init-param>
    </filter>

    <filter-mapping>
    <filter-name>ExpiresFilter</filter-name>
    <url-pattern>/*</url-pattern>
    <dispatcher>REQUEST</dispatcher>
    </filter-mapping>
  • 查看版本:jQuery.fn.jquery。
  • 在console里输入:document.designMode = “on”就可以直接修改网页上的内容。
  • 暗网上不流行使用各国现实的货币交易,只能用比特币,毕竟比特币去中心化的特征能最大程度保障双方的安全,因此这里也是研究比特币的重镇。
  • 科技本身就是一把双刃剑,就看人类怎么使用它。首先,构建暗网的技术对于整个互联网行业来说就很有价值。“比如构建暗网时使用了大量的区块链技术,而区块链技术在保密通讯、分布式传输等环节当中都在被使用,只不过在日常使用当中不会将所用信息都隐藏起来。
  • host文件里不能带端口。浏览器访问的网址域名后面带端口。
  • 同源策略主要限制的是不同源之间的交互操作,对于跨域内嵌的资源不受该策略限制。
  • 阻止页面被iframe内嵌,使用报文头标识:X-Frame-Options。
  • 关于”net::ERR_CONNECTION_ABORTED”和”Firebug达到了Post请求大小限制”的问题:原因:在做POST提交的时候,提交的内容大小超过2M,导致出现上面的问题。解决办法修改tomcat中的POST请求最大数据量的限制。

    1
    2
    3
    4
    5
    6
    7
    //server.xml
    <Connector port="8888" maxHttpHeaderSize="8192"
    maxThreads="10000" minSpareThreads="25" maxSpareThreads="75"
    enableLookups="false" redirectPort="8443" acceptCount="100"
    connectionTimeout="20000" disableUploadTimeout="true" URIEncoding="UTF-8"
    maxPostSize="0"/>

    即添加“maxPostSize="0",表示无限制
  • Smarty是一个使用PHP写出来的模板引擎,是目前业界最著名的PHP模板引擎之一。

  • iframe与主框架跨域互相访问:因为浏览器为了安全,禁止了不同域访问。因此只要调用与执行的双方是同域则可以相互访问。
  • 浏览器的策略:JS和CSS的位置对其他资源加载顺序的影响。
  • 因为javascript可能会来操作HTML文档的DOM树,所以,浏览器一般都不会像并行下载css文件并行下载js文件,因为这是js文件的特殊性造成的。所以,如果你的javascript想操作后面的DOM元素,基本上来说,浏览器都会报错说对象找不到。因为Javascript执行时,后面的HTML被阻塞住了,DOM树时还没有后面的DOM结点。所以程序也就报错了。
  • bigpipe:分块加载技术、HTTP分块传输编码允许服务器为动态生成的内容维持HTTP持久链接。Bigpipe技术其实具体实现需要服务器的代码配合。
  • HTTP分块传输编码格式:Transfer-Encoding: chunked。如果一个HTTP消息(请求消息或应答消息)的Transfer-Encoding消息头的值为chunked,那么,消息体由数量未定的块组成,并以最后一个大小为0的块为结束。Nodejs自动开启chunked encoding(除非通过sendHeader()设置Content-Length头)。
  • 重叠Web服务器的生成时间与浏览器的渲染时间,我们不仅可以减少最终的时间延迟,也能使网页更早显示用户可见区域给用户,从而大大减少用户对延迟的感知。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    // chunk 
    HTTP/1.1 200 OK
    Server: Apache-Coyote/1.1
    Content-Type: text/html;charset=ISO-8859-1
    Transfer-Encoding: chunked
    Date: Wed, 02 Aug 2017 16:22:00 GMT

    1ac (16进制的数字,标志这个块的大小)
    <!DOCTYPE html>
    <html lang="en">
    <head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    </head>
    <body>
    <div id="head" style="border:1px solid #ccc;">
    cnblogs logo <img src="http://mall.galaxybigdata.com/images/public/brand_logo.d9111479.png" />
    </div>
    101 (16进制的数字,标志这个块的大小)
    <br />
    <div id="content" style="border:1px solid blue;">
    csdn logo<br />
    <img src="http://mall.galaxybigdata.com/images/public/brand_logo.d9111479.png" />
    </div>
    </body>
    </html>
    0
  • 服务器的防火墙拦截xss攻击,导致提交内容时被拦截报net::ERR_CONNECTION_ABORTED、net::ERR_CONNECTION_REFUSED、net::ERR_CONNECTION_RESE。