典型的 web 应用的处理过程

(这个知识点,在工作中问的话,会被骂的)

  1. 小王,在家里,看新浪新闻时,先在浏览器中,输入 新浪首页URL: http://sina.com.cn/news 回车。

  2. (小王的电脑上的)浏览器,就会发起一个 http request 到 http://sina.com.cn/news

  3. 这个http request经过一些过程(域名解析阿,路由阿。。) 就会发送到 sina.com.cn 这个服务器上。 3.1 小王的电脑, 连接上的网络的DNS服务器,把 sina.com.cn 这个域名,解析成一个 ip 地址。 (可以通过 ping sina.com.cn 来知晓)


  $ ping sina.com.cn
  PING sina.com.cn (202.108.33.60) 56(84) bytes of data.

这样的话,小王的电脑就知道了,sina.com.cn 的IP 地址是: 202.108.33.60

3.2 小王的电脑,就把 小王的请求, 发送到上面的ip 地址。 并且,加上若干信息:

host: 202.108.33.60 (目的地) path: '/news' (请求的路径) method: GET (request的方法,一般是GET/POST)

3.3 经过20层路由, 这个请求, 就由小王家,发到了 新浪的服务器上。 举个例子,小王家住: 青海省,西宁市,幸福县,嗨皮乡,葡萄村。 路由的过程:

  1. 小王 -> 葡萄村 路由器。
  2. 葡萄寸路由器 -> 嗨皮乡 路由器
  3. 嗨皮乡路由器发送到 -> 幸福县。
  4. .. -> 西宁市路由器
  5. 西宁市 -> 青海省路由器
  6. 青海省路由器 -> 北京市 路由器
  7. 北京市路由器 -> 海淀区路由器
  8. 海淀区路由器 -> 中关村路由器
  9. 中关村路由器 -> 新浪大厦机房
  10. 机房路由器 -> 对应的服务器上。

下面是一个真实的例子:

# traceroute www.baidu.com
traceroute to www.baidu.com (61.135.169.125), 30 hops max, 40 byte packets
 1  192.168.74.2 (192.168.74.2)  2.606 ms  2.771 ms  2.950 ms
 2  211.151.56.57 (211.151.56.57)  0.596 ms  0.598 ms  0.591 ms
 3  211.151.227.206 (211.151.227.206)  0.546 ms  0.544 ms  0.538 ms
 4  210.77.139.145 (210.77.139.145)  0.710 ms  0.748 ms  0.801 ms
 5  202.106.42.101 (202.106.42.101)  6.759 ms  6.945 ms  7.107 ms
 6  61.148.154.97 (61.148.154.97)  718.908 ms * bt-228-025.bta.net.cn (202.106.228.25)  5.177 ms
 7  124.65.58.213 (124.65.58.213)  4.343 ms  4.336 ms  4.367 ms
 8  202.106.35.190 (202.106.35.190)  1.795 ms 61.148.156.138 (61.148.156.138)  1.899 ms  1.951 ms
 9  * * *
30  * * *
  1. 新浪服务器,收到了小王发来的 http request之后,就对它进行一些 处理。最终,返回了HTML内容。 (response)

  2. 上面的 response . 经过20多层路由, 返回到了 小王家电脑

  3. 小王的浏览器中, 显示了 第四步的 html 内容。

(中国联通,中国移动,电信,里面的知识体系,就是这个)

大师的被骂过程。

在2012年年底,(工作的第七年),我在优酷,开会。20个人,技术会。 里面提到了一个点: TCP/SOCKET协议。

我不懂。因为过去的工作中,从来没用过。我就很诚实的提问了 :

我的老板的老板,当时就说: 我靠,这都不知道,要我直接开掉阿! 给我的老板弄的特别难堪。

(我们关系很好。因为我的工作特别重要。我干的特别好。所以他很 照顾我。我的老板也很照顾我。但是,直到我离职, 还是不懂那天 开会时候的那个概念。。。)

知识体系的原则

  1. 实用主义: 用到的知识,必须掌握熟练。
  2. 不实用的(工作中几乎用不到的)东西, 可以不理解。(网络4层协议。 6层协议) 需要的时候,现学就赶趟。
  3. 实用主义:不要让自己在技术上站队。你需要什么,就学什么。 不要催眠自己: 我是一个web程序员,我不做 android/ios.

results matching ""

    No results matching ""