这周在读《图解HTTP》这本书,它算是一本比较友好的HTTP入门书,通过图文的描述使很多网络知识点都变得浅显易懂,计划先读完它,对HTTP的原理和流程有大概的入门后,再找一些更深入的书籍来补充对网络知识的掌握。
1、HTTP诞生的缘由:WWW(World Wide Web)万维网的提出是为了全世界的研究者进行知识同享,而HTTP(Hypetext Transfer Protocol)的制定是为了解决文本传输问题,97年公布的HTTP/1.1到今年2019年仍是主流版本。
2、Protocol,就是我们所说的协议,计算机之间进行通信肯定要基于一套共同的规则,比如怎么发起、通信内容格式、怎么接收等等,都需要制定一套双方都认可的规则。中文翻译为协议,我自己理解为统一的规则。
3、TCP/IP 是所有协议的总称,分为应用层、网络层、传输层和链路层。
TCP/IP分层.jpg
4、IP(Internet Protocol)和IP地址(Internet Protocol Address)是不同的概念,IP协议位于网络层,负责把数据通过网络传送到目的地。作为标记目的地的就有另外的两个概念了,IP地址和MAC地址(Media Access Control Address),IP地址是可变的,而MAC地址是指局域网地址,或者说设备的物理地址,这个基本不会改变。
5、路由选择,平时访问其他网站,我们的理解客户端发出时就规划好路线,要把数据通过一个个路由器传递,最后到达服务器端。这个理解是错误的,发起通信时,只能确定目的地,而中间经过什么路由器都是在发送中由实际情况来决定,这就是路由选择的概念。
6、三次握手策略通过下面这张图基本就可以理解了:
三次握手.jpg
7、DNS就不细讲了,它就是提供把域名解析为IP地址的服务。提一个前阵子刚理解的短链接概念,很多时候我们分享一个链接给对方,比如微博,到了对方那里我们会发现原来很长的链接变成很短的链接,这主要是为了简化,但是为什么只有5至6个字符的链接跟3至4十个字符的链接,无论在什么浏览器打开,都能访问到同一个资源呢?原理是企业通过短链接服务提供商把超长的链接转换成短链接,然后用户去访问短链接时,通过DNS解析出来的就是提供短链接服务提供商的IP地址,然后短链接服务提供商通过自己的算法或者数据库映射生成原始的链接,最后再通过DNS解析成真实的IP地址,这时就可以访问到原来的资源了。
8、GET /index.htm HTTP/1.1
Host: hackr.jp
上面是最简单的请求报文,GET是请求类型,/index.htm URI,也就是资源地址,HTTP/1.1是协议版本,主要是把请求的http版本告知服务端,Host: hackr.jp是域名。
9、HTTP是无状态协议,不保存任何请求和响应的通信状态,目的是为了能尽快处理大量的事务。我们知道有些网站登录一次后就可以记住登录状态了,这跟HTTP无关,主要是因为Cookie技术,它是用来管理HTTP通信状态的。客户端登录后,服务端会在响应里返回一个Set-Cookie字段,里面保存客户端的身份标记,客户端保存这个Cookie后,下次请求就会携带这个Cookie信息,服务端也能识别是哪个用户了。
10、GET和POST请求方法到底有什么不同,这是之前一直没有搞清楚的问题,本质上讲GET是为了获取资源,而POST是为了传输消息,简单POST的功能如果没有严格限制,通过GET也可以实现,区别在于GET的消息是拼接在报文首部的URI上,而POST的消息是在报文主体。
网友评论