其实我也感觉挺好奇的为什么自己会给自己接下来要写的超级长篇取一个这个中二的名字。嘛,虽然自己现在年龄也不小了,但是在有些时候我还是希望自己能够保持一颗童心,尝试去抛开利益的层面,去询问自己到底想要追寻些什么,还是希望自己能够保持那颗好奇心,尽管很多时候他不能转换成白花花的银子。

还是打算慢慢来,从科普性质的书籍看起吧,毕竟我始终感觉科普性质的读物往往对于架构本身的掌控,对于这个力道能拿捏地非常不错。在这里我所选择的科普性读物是《网络是怎样连接的》,我感觉这本书的写作风格和我非常相似,虽然说里面讲的大多数内容我都很清楚了,但是我还是想基于这本书查漏补缺吧。

其实多层协议本身就是一个绝佳复用的例子,所谓分层就是将基本上所有的请求进行分割,虽然会增加适当的冗余性,但是与之同时,会大大增加每一层的可复用程度。在计算机的架构过程中,无时无刻不存在着取舍和均衡,像B站就有一个梗,“小孩子才做选择,我全都要”,我感觉成熟的标志之一就是能做出合理的抉择了。本来我打算直接进入主题,但是很无奈的是,我感觉在不理解一些基础的思想的前提下,讲任何东西其实都仅仅是海市蜃楼罢了。

多层的架构的上层架构的实现都是基于其下层的架构的实现上舔砖加瓦得以实现的,就好比,HTTP需要三次握手了,client总不可能和server进行虚空握手吧,总需要基于一些载体,这个载体就是位于其下层的TCP协议。不知道你是否听过这么一句话,”哪有什么岁月静好,只是有人代你负重前行罢了“。所以其实表面上,在协议的高层,看似仅仅进行了一个非常简单的操作,但是实际上,位于低层的协议层可以说是忙的要死。毕竟高层的任何一个操作,说到底,到最后都是被翻译成低层的一些数据,然后被传输到目的地

首先我们需要确认计算机的浏览器是一个应用程序,我们不能因为这个应用程序往往伴随着操作系统就存在,而且能直接基于网址转换成丰富多彩的界面就过度神话它。理论还是需要基于实践进行讲解,现在的浏览器会设置很多默认的选项,就是为了让浏览器的使用能使用各种年龄段,各种智商段的。就比如说,在以前,协议名称输错,或者说少输入了一个/,都是不行的,现在直接就不用填写,都有默认值,足以应付大多数人日常的生活需求了。

让我们来看一下一个完整的所有浏览器都能够识别的URL是怎么样的吧。

http://user:password@www.glass.com:80/dir/file1.html

稀里糊涂写了一大串对不对啊,http是协议名称,所谓协议,最简单的理解就是人为制定的一套规矩,就好比日本人通过吃面条喜欢吃的很大声来表示礼貌和美味,但是这一套在自认为非常文明的昂撒国家就会被认为很粗鲁,这样容易造成歧义和误解。所以我们大家坐下来制定一套规矩,也就是协议,规定以后我们吃面条想表现得有礼貌就吃大声一些。

说完了协议名称,接下来就是用户名和密码了user:password,这两个是可选项,需要有些时候访问ftp或者svn的时候,猛然给你弹出一个窗口让你输入账号密码,其实就是需要验证你是否有执行相应操作的权限。

接着是www.glass.com:80也就是服务器域名和端口号,也就是能够提供给你服务的对应协议服务器的地址。最后是/dir/file1.html,即我们这次请求具体所需要访问的文件路径,Linux的核心思想之一,一切皆为文件。

Ciruy英雄谭 Chapter 2 Web浏览器如何将数据委托出去(一)相关推荐

  1. Ciruy英雄谭 Chapter 3 杂谈

    我始终坚持自己的想法,这和授人以鱼不如授人以渔的想法类似,又要提及自己的往事了.我记得,最初学网络协议的时候,接收到的总是干瘪的文字,就好比TCP协议是运输层,负责将需要传输的数据进行分割和排序.背完 ...

  2. Ciruy英雄谭 Chapter 1 序章

    好好考虑考虑自己的应该做些什么吧,少看一些那些散播充满浮躁和焦虑的文章. 说真的,我常常感觉自己非常的无知,就比如说虽然我知道计算机之间是通过高电平为1,低电平为0的方式进行数据传输的,但是具体到底是 ...

  3. Chapter 30 Web Technology and DBMSs

    Chapter 30 Web and Technology and DBMSs chapter objectives /*本章目标*/ In this chapter you will learn: ...

  4. [C# 网络编程系列]专题四:自定义Web浏览器

    前言: 前一个专题介绍了自定义的Web服务器,然而向Web服务器发出请求的正是本专题要介绍的Web浏览器,本专题通过简单自定义一个Web浏览器来简单介绍浏览器的工作原理,以及帮助一些初学者揭开浏览器这 ...

  5. Beaker:一个基于Electron的点对点Web浏览器

    Beaker是一个基于Electron.Chromium和Node.js的实验性.点对点Web浏览器.Beaker包含新的基于Dat的API,用于构建无主机应用程序,同时又保持与传统Web的兼容性. ...

  6. 大多数Web浏览器中都可以使用PUT,DELETE,HEAD等方法吗?

    我在这里看到了几个问题,例如如何调试RESTful服务 ,其中提到: 不幸的是,同一浏览器不允许我测试HTTP PUT,DELETE,并且在某种程度上甚至无法测试HTTP POST. 我还听说其他一些 ...

  7. 第十一章:WEB浏览器中的javascript

    客户端javascript涵盖在本系列的第二部分第10章,主要讲解javascript是如何在web浏览器中实现的,这些章节介绍了大量的脚本宿主对象,这些对象可以表示浏览器窗口.文档树的内容.这些章节 ...

  8. 禁用Cookie在web浏览器中读取/写入c#应用程序

    我希望网站无法读取cookie或在webbrowser c#控制应用程序中写入新的cookie.当webbrowser c#应用程序运行时,我宁愿禁用所有网站的所有读/写cookie操作,如果不是,那 ...

  9. 服务器应用程序不可用您试图在此 Web 服务器上访问的 Web 应用程序当前不可用。请点击 Web 浏览器中的“刷...

    错误提示: 服务器应用程序不可用您试图在此 Web 服务器上访问的 Web 应用程序当前不可用.请点击 Web 浏览器中的"刷新"按钮重试您的请求. 管理员注意事项:详述此特定请求 ...

最新文章

  1. cvCreateMat函数
  2. Javascript 控制 Flash FLV视频播放器 --国外开源
  3. 找出如下数组中最大的元素和最小的元素, a[][]={{3,2,6},{6,8,2,10},{5},{12,3,23}}
  4. 浅析企业开展网站建设具有哪些实际意义?
  5. git 命令行使用(基础篇)
  6. android 设计qq界面,[考试求助]仿照腾讯QQ应用软件,编写Android程序,登录界面设计...
  7. Hibernate面试题分析
  8. python3 爬虫第二步Selenium 使用简单的方式抓取复杂的页面信息
  9. Elasticsearch集群安装Version6.2.2
  10. JSP(九大内置对象)
  11. poj 2115 C Looooops(同余方程)
  12. 4.2.5 求解幂集问题
  13. html5 apple 没有声音,通过AppleALC,轻松解决黑苹果没声音问题
  14. 俄文输入法_【俄语怎么学】手把手教你使用俄语输入法
  15. 不满足作对(JZ2 替换空格(Java))
  16. 格式化日期时间字符串 Get-Date -Uformat , -format
  17. 面圆机的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
  18. QlikView sheet权限
  19. 数据库同步利器 otter 双A同步配置
  20. 调用wireshark(二):调用协议解析器

热门文章

  1. SpringBoot+Mybatis 实现动态数据源切换方案
  2. java 生成 防伪码,C#生成防伪码的思路及源码分享
  3. @data注解_聊一下@Conditional注解系列的作用
  4. mysql搜索规则_MySQL基于规则优化
  5. python魔法方法和普通方法_Python龙珠训练营九:魔法方法
  6. 为什么服务器虚拟化,为什么要进行服务器虚拟化
  7. php的div和p的区别,p标签与div标签区别
  8. 一招彻底帮你搞定HashMap源码,成长路线图
  9. 全网最具深度的三次握手、四次挥手讲解,稳进大厂
  10. VScode+SSH Remote多级连跳配置