• lckfa李钊
    2019-06-05
    最近对网络协议很感兴趣,也订阅了极客的其他网络专栏,所以相比而言,对上一节的内容不是很
    满意,觉得没有讲到架构的点上,今天发现许老师把前一节内容又更新了下,还是很有心的。看了今天的内容,觉得老师还是理性的,上一节是本节的引入点,现代系统如果没有网络,谈架构可能都是多余的,所以网络基础至关重要。还记得大学时基于传统的tcp写服务器的日子,那真是刀耕火种了,现在任何一种语言都有封装的特别好的网络库直接用,但是这并不代表我们不需要理解网络协议栈的底层原理。网络协议栈的划分本就是架构设计的现成模板。期待下一节的安全方案的讲解。
     1
     21
  • fjpcode
    2019-06-05
    老师的洞察力总能深入到事务的本质,对网络协议来龙去脉的分析,让人感觉非常顺畅。应用平台层网络协议的选择,对一个网络应用项目来说是至关重要的,这方面也踩过不少坑。感谢老师的梳理,对网络协议的认知又深入了一步。
    
     6
  • 陶辉
    2019-07-11
    ”如果说有谁能够打败微信,那么我个人一个基本的思考是:用微信的的方式打败微信恐怕很难,但微信是封闭协议,开放也许是一个打败微信的方式!“,赞!
    
     5
  • Peiel
    2019-06-05
    Nginx 可以用作应用层网关,那么应用层网关怎么理解?可以理解成我们通常在 Nginx 中对 HTTP 请求根据不同的api做相关的反向代理、负载均衡等相关配置,也就是所谓的api网关?

    作者回复: 嗯

    
     5
  • 一笔一画
    2019-06-05
    老师,请教一下,我可否这样认为,越往上层的协议其效率越低,到HTTP这样高阶的协议,它的性能会不会是一个瓶颈?

    作者回复: 不能这么看,是做的事情越来越多。HTTP协议首先是TCP协议的,只不过干了更多的业务,如果不用HTTP,并不代表你可以节约这块的成本,只不过换成你自己写的而已

    
     4
  • 唔多志
    2019-06-05
    打卡,再次被老师的高纬思想折服
    
     4
  • 贾志猛
    2019-06-07
    你好老师,网关这个词一开始是在传输层接触到的,路由器起到的就是网关的作用,本质上是一个关口,数据包通过关口之后去寻找自己的目的地。现在谈的应用层的网关,是不是就是HTTP的请求的关口,根据不同的URL映射到不同的服务端接口,可以把负载均衡器理解为应用层的网关吗?

    作者回复: 是的

    
     3
  • Panda
    2019-06-10
    大道至简
    
     1
  • 立耳
    2019-06-09
    请教许老师一个技术细节的问题,假如服务端向客户端回复了一个超大的包,或者通过responseWriter的write方法写一个大文件,这个文件大小可能超过网卡的连接缓存大小,实际上客户端的Client.Do返回的response对象是在TCP链接结束后产生的,还是由HTTP协议来控制呢?

    作者回复: Response对象里面有Body字段,调用其Close方法才会有**可能**释放socket,但是也只是可能,因为背后的socket是复用的

    
     1
  • 王克
    2019-06-06
    近几年来HTTPS协议发展的很好,老师能简单的介绍下优缺点吗?

    作者回复: 下一讲谈https

    
     1
  • 涵
    2019-06-06
    老师好,请问使用socket编程是不是就是在TCP/UDP层面的?您觉得未来Restful api会占据垄断地位,成为PaaS上的SaaS服务间的标准调用协议吗?谢谢。

    作者回复: 1、是的
    2、看起来有这个迹象

    
     1
  • 虎哥
    2019-06-05
    相对应地,在 HTTP 协议中以 “资源路径” 表达资源,以 PUT-POST-GET-DELETE 表达 CURD 操作(也有一些服务以 POST 而不是用 PUT 请求来创建资源)。这段写错了吧,post 是 C put 是U吧

    作者回复: 不同人用的惯例不一样,从实际我看到的api案例看,put用的比较少

    
     1
  • 马哲富
    2019-06-05
    许老师好!
        "由于TCP基于连接,所以每Accept一个连接后,我们可以有一个独立的执行体去处理它;但是UDP是无连接的,需要我们手工根据来源IP+Port来判断如何分派",是否可以理解为基于TCP的协议,服务端每接收一个数据包就处理一个,而基于UDP的协议,服务端接收到数据包之后是先分派后处理?而这个分派的条件是IP+Port,1.为啥要分派?2.为啥是根据IP+Port来分派?

    作者回复: 服务器是同时服务很多客户的,不同客户的请求无关,一个客户是通过请求包的来源ip+port来区分。

    
     1
  • 1900
    2019-06-05
    “如果我们限定传输的数据包一定是某种应用层协议时,就会出现所谓的应用层网关”,这句话很费解,为什么“传输的数据包”会是“某种应用层协议”?数据包和协议是两个东西吧?

    作者回复: 协议只是数据格式而已

    
     1
  • 1900
    2019-06-05
    对象存储作为目前新颖的一种存储类型,它相对于传统网络存储类型的优势在哪里呢?另外它也有什么不足或者局限么?

    作者回复: 后面服务端开发会讨论这个问题。最大的区别其实不是协议的选择,而是编程模型的改变。传统网络存储延续了本地文件系统的习惯,基本上都是filesystem的树状元数据组织方式,对象存储是key-value这种平面结构。

    
     1
  • 觉
    2019-06-05
    感恩大佬分享 随喜大佬
    
     1
  • coderfocus
    2019-06-05
    许老师看问题的角度 高屋建瓴 满满的收获
    
     1
  • Aaron Cheung
    2019-06-05
    打卡15 HTTP编程逻辑
    
     1
  • 码农Kevin亮
    2019-10-09
    请问老师,开放协议与封闭协议是怎么理解呢

    作者回复: 封闭协议是指自己定义应用层的网络协议,而不是用http或者protobuf之类的开放协议。

    
    
  • 弹弹君
    2019-09-09
    基于成熟应用层协议,资源和对资源的CURD都很方便去操作和维护
    
    
我们在线,来聊聊吧