《HTTP小书》读书笔记(1)预备知识(关键词:计算机网络/HTTP/Node.js)

来源:互联网 发布:手机淘宝发不出去图片 编辑:程序博客网 时间:2024/06/06 14:03

预备知识(辅助理解本书的补充知识)

Node.js是是什么?用来做什么的?

读者对Node.js了解极少,结合以下4条解释,读者的理解是:

简而言之,Node.js运行在服务器端,类似于Java虚拟机,或者解释器。原本,JavaScript代码是用在前端的。现在,JavaScript可以运行在服务器端Node.js,由Node.js解释执行

说的啰嗦一点,Node.js就是类似于Java虚拟机的一种存在,Node.js是一个JavaScript的运行环境,Node.js 运行在服务器端原本JavaScript是用于前端的,现在由于Node.js运行在服务器端,这就意味着,可以使用Javascript编写后台代码,然后交给Node.js来解释执行

备注:
在本书中,“Node.js”首次出现在“实验环境”章。

(1)runoob.com:
简单的说 Node.js 就是运行在服务端的 JavaScript
Node.js 是一个基于Chrome JavaScript 运行时建立的一个平台。
Node.js是一个事件驱动I/O服务端JavaScript环境,基于Google的V8引擎,V8引擎执行Javascript的速度非常快,性能非常好。

(2)wyb1995:
刚一听到这个名字,许多人就认为这是一个Javascript应用,其实不然,Node.js是一个Javascript的运行环境。作为前端最重要的语言Javascript,一直都是前端工程师的专利,不过Node.js是一个后端的Javascript运行环境。这就意味着你可以使用Javascript来编写后台代码,然后交给Node.js来解释执行

(3)崔钢:
一种javascript的运行环境,能够使得javascript脱离浏览器运行。

(4)其他:
Node.js 究竟是什么? - developerWorks - IBM
Node.js - 维基百科

安装Node.js和框架Express.js

Ubuntu 上安装 Node.js

Ubuntu apt-get命令安装

sudo apt-get install nodejssudo apt-get install npm

安装Express.js

Node.js Error: Cannot find module express

sudo apt-get install node-express

统一资源定位符

备注:
在本书中,“统一资源定位符”首次出现在“HTTP引入”章。

(1)统一资源定位符 - 维基百科:
统一资源定位符(或称统一资源定位器/定位地址、URL地址,英语:Uniform Resource Locator,常缩写为URL),有时也被俗称网页地址网址)。如同在网络上的门牌,是因特网上标准的资源的地址(Address)。它最初是由蒂姆·伯纳斯-李发明,用来作为万维网的地址。现在它已经被万维网联盟编制为因特网标准RFC 1738

HTTP的幂等性

备注:
在本书中,“幂等性”首次出现在“HTTP引入”章的“请求消息”节的“请求行”小节。

关于幂等性,举个例子:

试想这样的一种场景:在电商平台上支付后,因为网络原因导致系统提示你支付失败,于是你又重新付款了一次,等完成后检查网银发现被系统扣了两次款,这是一种什么样的体验?

造成上述问题的原因可能有很多,比如第一次付款时实际支付成功,但是信息返回时网络中断导致系统误判;又比如第一次付款的确失败了,但第二次付款时发生意外,导致支付请求被重复发送等等。在一次支付的过程中,每个环节都有可能会发生问题,我们要如何规避这类问题引发的分险?

幂等性是解决这类问题的方案之一,所以在电商,银行,互联网金融等对数据准确性要求很高的领域中,这一特性具有十分重要的地位。

(1)理解HTTP幂等性:
HTTP方法的幂等性是指一次多次请求某一个资源应该具有同样副作用

(2)幂等性浅谈

(3)编程中的幂等性 —— HTTP幂等性

(4)http的7种请求方法和幂等性

(5)幂等 - 维基百科
设S为一具有作用于其自身的二元运算的集合,则S的元素s称为幂等的(相对于*)当
s *s = s.
特别的是,任一单位元都是幂等的。若S的所有元素都是幂等的话,则其二元运算*被称做是幂等的。例如,并集和交集的运算便都是幂等的。

(6)幂等 - 百度百科

本书提到的RFC

(1)HTTP的rfc(即RFC 2616,描述了HTTP 1.1。)
备注:该RFC首次出现在“前言”中。

(2)RFC 2045:
应该包括了Web资源的清单(例如文本文件、HTML文件、JPEG文件)、资源类型和文本标记的对应关系。
备注:该RFC首次出现在“术语-资源”中,第2次出现在“术语-资源类型”中。

(3)RFC 6265:
应该包括了Cookie格式定义。
备注:该RFC首次出现在“客户识别-Cookie格式定义”中。

MIME

备注:在本书中,MIME首次出现在“术语-资源类型”中。

(1)MIME 类型
MIME (Multipurpose Internet Mail Extensions 多用途互联网邮件扩展) 是描述消息内容类型的因特网标准。
MIME 消息能包含文本、图像、音频、视频以及其他应用程序专用的数据

(2)多用途互联网邮件扩展

(3)MIME 类型

用户代理

备注:在本书中,“用户代理”首次出现在“术语-资源标识符”中。

(1)用户代理 - 百度百科:
User Agent中文名为用户代理,简称 UA,它是一个特殊字符串头,使得服务器能够识别客户使用操作系统及版本CPU 类型浏览器及版本浏览器渲染引擎浏览器语言浏览器插件等。

(2)用户代理 - 维基百科

前条件

读者的理解:“前条件”就是英文“precondition”,预制条件前提条件、先决条件的意思。

“前条件”这个名词,在本书中,首次出现在“响应-300 型响应-304 Not Modified”。在网上没有找到相关的解释。在本书“响应-412 Precondition Failed”中,作者的解释如下:
客户端发起了条件请求,服务器发现这个请求中的其中一个条件并不成立,那么服务器就会用此错误码作为响应消息的状态码返回给客户端。

请求头上可以使用如下字段对请求做出条件限定:

If-MatchIf-Modified-SinceIf-None-MatchIf-RangeIf-Unmodified-Since

这些请求头被称为前条件。通过它们可以告诉服务器只有条件满足才去完成请求的执行

参考文献:
1.《HTTP小书》。

阅读全文
0 0
原创粉丝点击