最近花了点时间看了上野 宣的《图解http》,收获良多。本书浅显易懂,小白也能看懂。

我把看书过程中感兴趣的做了一些笔记。

TCP/IP 的分层管理

4层:应用层/传输层/网络层/数据链路层

好处:如果互联网只由一个协议统筹,某个地方需要改变设计时,就必须把所有部分整体替换掉。

但如果分层了,只需要把变动的层替换即可。

层次化之后,设计也变得相对简单了。处于应用层上
的应用可以只考虑分派给自己的任务,而不需要弄清对方在地球上哪
个地方、对方的传输路线是怎样的、是否能确保传输送达等问题

四层协议
四层协议

发送端与接收端的数据传输

数据传输
数据传输

说明:发送端层与层之间传输数据时,每经过一层会被打上该层所属的首部的信息。而再接收端层与层传输数据时,每经过一层,会把对应的首部去掉。

TCP三次握手

握手的过程中使用了TCP的标志:SYN(synchronize) 和ACK(acknowledgement)。

三次握手
三次握手

各个协议与http协议

下图详细介绍了IP协议,TCP协议和DNS服务在使用HTTP协议的通信过程中发挥的作用。

ip与http与tcp
ip与http与tcp

URI和URL的区别

URI:统一资源标识符

URL:统一资源定位符,就是访问web页面在浏览器上输入的网址。

至于区别,知乎上有人形象比喻:

统一资源标志符URI就是在某一规则下能把一个资源独一无二地标识出来。
拿人做例子,假设这个世界上所有人的名字都不能重复,那么名字就是URI的一个实例,通过名字这个字符串就可以标识出唯一的一个人。
现实当中名字当然是会重复的,所以身份证号才是URI,通过身份证号能让我们能且仅能确定一个人

上面是URI,看看下面的URL:

那统一资源定位符URL是什么呢。也拿人做例子然后跟HTTP的URL做类比,就可以有:动物住址协议://地球/中国/浙江省/杭州市/西湖区/某大学/14号宿舍楼/525号寝/张三.人可以看到,这个字符串同样标识出了唯一的一个人,起到了URI的作用,所以URL是URI的子集。URL是以描述人的位置来唯一确定一个人的。

URI用字符串标识某一互联网资源,而URL表示资源的地点。可以说,URL是URI的子集。

URI格式
URI格式

GET与POST

GET:获取资源

get
get

POST:传输实体主体

POST的主要目的并不是获取响应的主体内容。

post
post

HTTP支持的方法

get等
get等

如上图,我们一般只用前5个方法。

状态码类别

状态码类别
状态码类别

HTTPS

为了保证服务器与客户端信息传递的安全性,需要在HTTP上再加入加密处理认证等机制。添加了这种机制的HTTP称为HTTPS(HTTP Secure)。

HTTPS
HTTPS

除了上面的知识,书中还介绍了一些注入攻击的内容,不过有些技术可能现在已经派不上用场。也就不记录下来了