不得不说相互监督,对不热爱学习、不勤于总结的孩子,是一种有效激励。
最近几天看了《图解HTTP》前五章,所以今天的文章是一篇总结文,对http的工作流程以及http相关协议的工作协调的总结,http结构的详细描述要过几天才能更,今天的总结更偏向初阶。PS:图解HTTP是一本易懂,知识点章节划分合理的书,请尽量挤时间看这本书,你会收获很多。
正文开始
1 计算机网络是具有五层协议的体系结构。(谢希仁版)
计算机网络是计算机科学专业的必修课,做前端的你可以不知道计算机网络中有多少协议,计算机网络是怎么搭建网络拓扑,怎么叫分组交换等等,但是你一定要至少知道计算机网络第一章里的 ‘计算机网络是具有五层协议的体系结构’,这五层包括物理层、数据链路层、网络层、运输层、应用层。你还要知道每一层的用途如下(来自计算机网络书本):
应用层:应用进程间的交互来完成特定的网络应用,HTTP协议(浏览器),SMTP协议(邮件),FTP协议(文件)
运输层:负责两个主机的进程之间的通信(封装成报文),tcp协议,UDT协议
2 Http和它的小伙伴们是怎么一起踢足球的
应用层的发送端(客户端)是一个崭新的足球,里面装着HTTP报文,报文请求进球,足球滚到传输层,遇到TCP,TCP踢了一脚,上面留下了TCP首部的脚印,随后滚到网络层,IP在上面留下了IP首部的脚印(这里IP是网际协议,不是IP地址),继续到链路层,链路层得到了作为通信目的地的MAC地址,并留下以太网首部的脚印,有了目的地,足球到了服务端的MAC地址,擦掉自己的脚印,给网络层,网络层擦掉了网络层的脚印,给传输层,传输层擦掉传输层脚印,此时干净足球到了球门,服务器收到足球,或许进了或许没进,但它会把足球重新踢回去,里面装的是响应包,首部会有状态码等等,表达在球门发生的具体事件。
解说到这里,我们先中场暂停,我们聊聊它的小伙伴TCP、IP、DNS的表现
应用层的DNS(Domain Name System)是解析客户端的域名为IP地址,可以通过域名查找IP地址,也可以通过IP反查域名。
传输层的TCP是提供可靠传输用的协议,可靠是因为建立连接时,三次握手,断开连接时四次挥手的策略。我们在HTTP1.1和部分HTTP1.0中使用持久连接的TCP连接,降低通信量的开销,具体在一开始建立链接,除非明确提出断开连接,否则一直保持了解。
网络层的IP是边发送边中转,IP间通信依赖MAC地址,而APR地址解析协议就是它的好帮手,把IP地址给它,它就给你对应的MAC地址,问题来了,那如果ARP的表中没有IP对应的MAC地址怎么办,APR会广播寻找这个IP地址,找到后把对应的MAC地址放在表中,并把地址给IP,不停中转,最终中转到目的MAC地址。
3 Http和它协作的Web服务器们
Http平时除了和用户使用的客户端有交集,与数据库交互的服务器有联系外,http还和一些用于通信数据转发的应用程序联系紧密。如“中间人”——代理,因为一般来说,因为客户端和服务端之间的距离较长,并且网络结构复杂,所以为了使请求相应过程更快更有效率,也更加安全,但总归来说,它还是扮演了中间人的角色,代理基本按两种基准分类,一种是是否适用缓存,一种是是否会修改报文。透明代理不对报文做任何加工,只起到了客户端和服务器间的转发功能;缓存代理往往会保存服务器发来的响应的副本,当它下一次再遇到相同的请求,可以不用转发给服务器,直接将之前的缓存的资源作为相应返回。网关和代理类似,但网关能使通信线路上的服务器提供非Http服务,再转化为http响应发回给客户端。隧道大家应该都不陌生,感觉面试时经常被问到,HTTP和HTTPS的区别是什么,SSL层有了解过吗?诸如此类的问题,这就和隧道有关系了,书上说,隧道可以按要求建立起一条与其他服务器的通信线路,届时使用SSL等加密手段进行通信。当然最终是为了让通信更加安全,毕竟很多时候客户端和服务器之间距离较远,此外SSL层在运输层哦小伙伴们,要记住!关于这里涉及的HTTP缓存的具体总结,我会在总结HTTP结构时一并总结。
明天更新HTTP结构的具体总结,蹦床造成的脖子疼真的疼,明天见
网友评论