获得徽章 0
- 面试题:HTTP 连接分为长连接和短连接,而我们现在常用的都是 HTTP 1.1,因此我们用的都是长连接。这种说法正确吗?
其实这句话只对了后半句:我们现在大多应用 HTTP 1.1,因此用的都是长连接,这种说法勉强算对,因为 HTTP 1.1 默认 Connection 为 keep-alive。但是 HTTP 协议并没有长连接、短连接之分,所谓的长短连接都是在说 TCP 连接,TCP 连接是一个双向的通道,它是可以保持一段时间不关闭的,因此 TCP 连接才有真正的长连接和短连接这一说。
这个可以回到网络分层的话题上,HTTP 协议说到底是应用层的协议,而 TCP 才是真正的传输层协议,只有负责传输的这一层才需要建立连接。
长连接是一种永久连接吗?
事实上,长连接并不是永久连接的,在长连接建立以后,如果一段时间内没有 HTTP 请求发出,这个长连接就会断掉。这个超时的时间可以在 header 中进行设置。展开36 - 今天,Deno 1.0 正式发布,什么是Deno呢?Deno是使用V8并内置于Rust的JavaScript和TypeScript的新运行时,致力于在Web浏览器之外执行JavaScript和TypeScript程序。
它和Node.js的设计者是同一人:Ryan Dahl,是Ryan Dahl继Node.js之后的又一大作;Deno的设计特别注重安全,有着众多优点:
1. Deno 是以安全为前提的,除非明确启用,否则不会访问文件、网络或者环境;
2. 在设计之初便充分考虑到了TypeScript,所以对TypeScript有着开箱即用的支持;
3. 只提供一个可执行文件;
4. 内置了很实用的程序,如依赖检查器(deno info)和代码格式化器(deno fmt);
5. 拥有一组经过审核的标准模块:deno.land/std,能和deno一起运行;
虽然都支持V8引擎,但Deno却并不是Node.js的分支,它甚至都不和Node(NPM)兼容;Deno是一个全新的JavaScript和TypeScript程序运行时,意在构建更加安全和高效的JavaScript和TypeScript程序,虽然目前和Node.js并不兼容,Deno却希望在将来能够使用Deno来运行更多的Node项目。展开79