作者回复: 总结的非常详细,也很准确,鼓掌!
作者回复: 比喻的好生动,笑。
作者回复: √
作者回复: 当然可以,如果在Linux上跑Nginx,就可以指定用Unix domain socket。
关键要理解协议栈,http不强制要求下层必须是tcp。
作者回复: 说的很好,不过现在urn用的很少,现在的uri基本上就是url,除非写论文,否则不用特意区分。
作者回复: 说的很好。
作者回复: url是uri的子集,url只表示网址,而uri除了表示网址,还能够标记其他的任意东西。
但在互联网上,这两者是基本等价的,也不需要去钻字眼刻意区分。
作者回复: 好像不太正确,每一次的http消息都是一个往返,请求先到服务器,然后服务器发回响应。
正向代理是指“正”着代理客户端,反向代理是指“逆”着请求的方向代理服务器。
作者回复: 当然了,这就是http灵活性的体现。
作者回复: 看来大家都很理解代理的作用了。
作者回复: 说的挺好,写完就更好了。
作者回复: 基本上差不多,但有的场景下可能不一致。
比如传输的数据没有丢,但错了几个bit,就不完整了。
作者回复: 理论上应该是可以的,但实际上应该没有这么用。
因为正向代理连接的是上网的客户端,反向代理连接的是网站的服务器,代理的对象是不同的,合不到一起。
作者回复: 是的。
作者回复: 这个好像不需要什么实例,这种做法很普遍,比如以前的z.cn和www.amzon.cn都指向一个站点。
另外,ip对应多个域名,不用端口映射。
作者回复: 调用Socket API(send),然后层层打包,由操作系统发。到ip层就有ip地址知道发去哪里了。
作者回复: 可以看一下第5讲,里面有答案。
作者回复: uri会有默认端口号,比如http默认是80,用tcp连接必须要同时指定ip地址和端口。
服务器进程在指定端口上监听,然后tcp就可以建立连接。
作者回复: 简单来说,丢失就不完整了。可以对比一下udp,udp不保证数据完整,会丢包,使用udp的应用需要自己处理丢包,保证数据完整,而使用tcp的应用就不需要考虑这些。