#115 HTTP Cookie
HTTP Cookie 2016-01-28Cookie 的相关知识总结
coding in a complicated world
Cookie 的相关知识总结
算是 SSH 端口转发(隧道技术)的一种利用。
武汉住房公积金的提取办法。
关于 sys.setdefaultencoding
的一些问题。
.gitignore 常见的 *.py[cod]
。
参考 gitignore.io。
.py
.pyc
编译过后生成的字节码文件.pyo
经过优化的字节码文件。Python2 时代常见,Python3 不再使用。现在是 .opt-1.pyc
, opt-2.pyc
.pyd
.pyi
Python Stub 文件,IDE 中为了提供更好的提示会带一些这样的文件,只是所有方法都是空的。py
后缀了。.pyw
Windows 专供,py 文件由 python.exe 解析,pyw 文件由 pythonw.exe 执行.pth
自定义路径导入规则的文件,参考:.pth 文件和 site 模块可能这是 Linux 命令行使用频率最高的一个计算器工具了。
其语法可以说比较复杂,可以定义变量,有各种逻辑控制语句,甚至可以定义函数,简直可以拿来做程序设计了。但是我们一般可能用不了这么多功能,就用来做一些简单计算就行。
PS:奇怪的是,有这么多复杂的功能,竟然没有包含位运算。
bc <<< "1 + 3 + 5 + 7 + 9"
26
bc <<< "scale=3; 1 / 3"
.333
bc <<< "obase=2; 14"
1110
bc <<< "ibase=16;obase=2; FF - 1A"
11100101
long_string="line 1
line 2
line 3"
# bash ========
# readarray -t lines <<< "$long_string"
# IFS=$'\n' lines=($long_string)
# zsh =========
# lines=("${(@f)long_string}")
setopt sh_word_split
for line in "${lines[@]}"
do
echo "$line =="
done
这里的上帝叫做一如 Eru,或者伊露维塔 Ilúvitar。
一如在虚空中创建了时空(一亚),又在这个时空中创建了一个平面的世界阿尔达(天如穹庐,笼盖四野)。
帮助一如创世的是埃努,一如的意识,他们通过音乐(埃努的大乐章)来创造世界。
有一个是例外,一如独立创造了精灵和人类,给精灵的礼物是真善美,给人类的礼物是死亡。
为了继续完善这个世界,照顾好神的孩子,部分埃努离开一如,进入了阿尔达,其中力量强大的叫做维拉 (女性维拉也被称为维丽 Valier),有 15 位,普通的叫迈雅,数量比较多(包括神犬胡安和巨鹰)。
部分埃努黑化,其中包括维拉米尔寇 Melkor(后来叫做魔苟斯 Morgoth(黑暗暴君)),迈雅索伦。
霍比特人,魔戒,精灵宝钻发生的时间都比较晚,主要发生在中土大陆。
第二纪元,阿门洲被剥离出来,剩下的阿尔达被卷曲成了一个球形。无法直接从中洲走到阿门洲。
魔王一直给埃努捣乱,破坏了给整个世界带来光明的两盏巨灯。
埃努就囚禁了魔王,又在阿门洲创造了两棵巨树,能照亮阿门洲的部分区域。
等精灵苏醒过来之后,带绝大部分精灵穿越大海,从中土来到阿门洲。
结果后来部分精灵被魔王蛊惑,对埃努心生不满,甚至产生内乱,离开阿门洲,返回中州。
埃努就开始不再干涉中洲的事情。
中土世界的五个迈雅,有两位去了东方,在故事中没有出现,剩下三个:白袍巫师萨鲁曼,灰袍巫师甘道夫,褐袍巫师。
除了精灵和人类,其他的智慧生物:
https://en.wikipedia.org/wiki/Middle-earth
https://en.wikipedia.org/wiki/File_Transfer_Protocol
B/S 模式,一个连接两个通道,命令通道传输控制指令以及响应,数据通道传输数据。
S: 220 Welcome to markjour.cn FTP service.
C: USER admin
S: 331 Please specify the password.
C: PASS ****************
S: 230 Login successful.
IPv6 引入之后,有了两个新的指令(RFC#2428):
EPRT |<网络协议>|<IP>|<端口>|
EPSV 1
,EPSV 2
,EPSV ALL
https://en.wikipedia.org/wiki/List_of_FTP_commands
FTP Secure,FTP over SSL
FTP + TLS
Secure File Transfer Protocol,安全文件传送协议,SSH 的一部分。
需要借助 sshd 充当服务器端。
https://en.wikipedia.org/wiki/SSH_File_Transfer_Protocol
SFTP 和 FTPS 的区别就是分别使用 SSH 协议和 TLS 协议实现网络加密。
https://en.wikipedia.org/wiki/Comparison_of_file_transfer_protocols
符号 | ||||||||
---|---|---|---|---|---|---|---|---|
0 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 127 |
0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 2 |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | −1 |
1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | −2 |
1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | −127 |
1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | −128 |
CPU 可以很快的计算加法,但是减法、乘法、除法就复杂得多。
减法的计算:1 - 1 = 1 + (-1)
如果带上符号,CPU 需要区分符号位,计算起来就复杂了。
1 + (-1) = [0001]原 + [1001]原 = [1010]原 = -2
所以发明反码,解决了符号位的问题。
1 + (-1) = [0001]反 + [1110]反 = [1111]反 = [1000]原 = -0
其背后肯定有计算机科学专家的严密论证。
原码和反码的问题:+0,-0
所以发明补码,将数据表示范围从 [-7, 7]
-> [-8, 7]
。
为了方便,还是以四位二进制为例说明:
数字 | 原码 | 反码 | 补码 |
---|---|---|---|
0 | 0000 | 0000 | 0000 |
1 | 0001 | 0001 | 0001 |
2 | 0010 | 0010 | 0010 |
3 | 0011 | 0011 | 0011 |
4 | 0100 | 0100 | 0100 |
5 | 0101 | 0101 | 0101 |
6 | 0110 | 0110 | 0110 |
7 | 0111 | 0111 | 0111 |
-1 | 1001 | 1110 | 1111 |
-2 | 1010 | 1101 | 1110 |
-3 | 1011 | 1100 | 1101 |
-4 | 1100 | 1011 | 1100 |
-5 | 1101 | 1010 | 1011 |
-6 | 1110 | 1001 | 1010 |
-7 | 1111 | 1000 | 1001 |
原码还剩最后一种组合:-0,也就是 1000
,对应反码 1111
。补码还剩 1000
。
但是补码 1000
在我们的 CPU 加法器中可以起到 -8 的作用:
(-1) + (-7) = [1111]补 + [1001]补 = [1000]补
(-2) + (-6) = [1110]补 + [1010]补 = [1000]补
补码的计算:
1 + (-1) = [0001]补 + [1111]补 = [0000]补 = [0000]原 = 0
背后肯定也是有严密论证的。
所以,现在,计算机内部的计算都是以补码形式进行。
逻辑运算 | 数学表示 | 编程 |
---|---|---|
与 | $a \land b$ | & |
或 | $a \lor b$ | | |
非 | $\neg a$ | ! |
异或 | $a \oplus b$ | ^ |
左移位 | $a \ll 4$ | << |
右移位 | $a \gg 4$ | >> |