作者回复: 总结的很好,也很早啊。
指出一点误解:两个浏览器不能通信。服务器可以当客户端,但浏览器只是客户端。
作者回复: 是啊,讲清楚讲明白太不容易了。
作者回复: 讲深了当然可以,但如果上来就是RFC估计会“吓跑”很多人,所以还是循序渐进比较好。
后面的进阶、安全、飞翔都有比较深的干货,有具体的需求也可以提,如果感兴趣的人多就多加点料。
作者回复: 非常感谢。
作者回复: 感谢指正,人老了,手抖了,笑。
作者回复: 有的,比如在UNIX上可以用Domain Socket,还有SSL/TLS。
作者回复: thanks.
作者回复: 你理解的很对,既然是约定,只要大家都遵守,那么协议就生效了。
就像红绿灯,它只是有颜色转换,怎么就能管理交通呢,你可以对比理解一下。
计算机依据http的规范去做,发请求收响应,就实现了传输数据。如果不按照http规范,就不能完成通信。
作者回复: 对。
作者回复: good。
作者回复: len参数是buf的长度,你开了多少就填多少,实际接收到的数据长度在函数返回值里。
调用示例可以参考Nginx源码的ngx_recv.c。
作者回复: √
作者回复: 1,浏览器只能是请求方,发送请求接收响应。
2,websocket是为了解决动态html的问题而出现的,应用场景是web,所以用到了http。
作者回复: 网络分很多层次,但在http来看它并不关心,下层是怎么样它都无所谓,在http这一层来看就是两个端点:客户端和服务器,中间经过了多少路由网关是不考虑的。
这个就是抽象的力量,当然理论上是这么说,实际上当然是层次收发的。
后面还会讲http与协议栈,到时候可以再问。
作者回复: 最后一个不对,两个浏览器不能通信。服务器可以当客户端,但浏览器只是客户端。
作者回复: thanks。
作者回复: 第一点,注意还有传输方向、端点用户。
作者回复: 到探索篇会讲,简单地说它就是tcp套了个壳,但用http建立连接。
作者回复: 历史原因,改不了,但自己这么理解是没问题的。