松鼠书读书笔记(三)——HTTP连接管理

来源:互联网 发布:淘宝爆款是什么意思啊 编辑:程序博客网 时间:2024/04/24 13:30
世界上几乎所有的HTTP通信都是由TCP/IP承载的

我不知道为什么这里说的是“几乎所有”,而不是全部。我不知道哪个HTTP应用实现是建立在UDP协议上的,书里也没有举例子。总之,结论就是看到HTTP,可以默认其下层协议是TCP/IP

所以基本上,一次HTTP事务的过程,就是客户端首先与服务端建立TCP连接,然后客户端发送一条http请求,服务端发送一条http响应,最后断开TCP连接

我们常说的端口号,是TCP端口号;而主机名,则会被解析成IP地址。IP地址用于连接到正确的计算机上,而端口号则用于连接到正确的应用程序上。

TCP连接通过4个值来识别:

源IP、源端口、目的IP、目的端口

比如从我的机器上,开了一个IE连到百度,又开了一个chrome也连到百度,那么这个时候就是这样的:

我的IP、某端口A、220.181.111.147、80
我的IP、某端口B、220.181.111.147、80

经常说的socket,就是一组操纵TCP/IP的编程API。由于其设计精巧,并且对应用层程序员完全隐藏了TCP/IP的细节,所以基本上,所有需要用到TCP/IP的程序,都会使用socket接口来完成

但是并不能说“HTTP是建立在socket基础上的”。HTTP是实实在在的应用层协议,它几乎100%是建立在TCP/IP上的。而socket是简化TCP/IP编程的API接口,其本身并不是一个协议

socket最早是为UNIX开发的,现在几乎所有的操作系统和语言中都有它,比如JAVA中,就有整套Socket API

最后,书中提到,HTTP/1.1允许HTTP在事务结束之后,将TCP连接保持在打开状态,未来的HTTP请求可以重用该连接。这样的话可以节省重新建立TCP连接的时间,提升一点性能。这样的连接叫做“持久连接”

但是,其实持久连接,是可以用来做更多事情的,比如服务端推送。但是HTTP协议仅规定client agent未来发送http request时重用,没有规定server利用该连接实现推送的相关细节。所以服务端推送貌似并没有官方标准,至少在HTTP/1.1里没有,我觉得这点很遗憾

现在即使持久连接已经建立,服务端并不知道通过什么标准往client agent反推消息;client agent也没有标准的做法,在连接上监听等待server发来的消息,并进行相应的处理。我认为这恐怕是HTTP/1.1最大的缺陷
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 孕早期吃了荠菜怎么办 孕中期吃了荠菜怎么办 孕妇吃了荠荠菜怎么办 刚怀孕吃了荠菜怎么办 孕妇误吃了荠菜怎么办 手刮了芋头很痒怎么办 手弄了芋头很痒怎么办 削完芋头皮手痒怎么办 洗完芋头后手痒怎么办 芋头的汁非常痒怎么办 孕妇吃了木耳菜怎么办 宝宝体检本丢了怎么办 家具长霉长虫了怎么办 喝了发霉的水怎么办 饭店刚开业生意不好怎么办 牙不能咬硬东西怎么办 甲鱼头不伸出来怎么办 咸鸭蛋腌的太咸怎么办 煮熟的鸭蛋不咸怎么办 羊腰子上的肥油怎么办 高漫sai没有压感怎么办 sai上面没有笔压怎么办 pr视频导不出来怎么办 脏辫头发长长了怎么办 脏辫发根长出来怎么办 白鞋前面踢破了怎么办 皮鞋破了一点皮怎么办 白色皮鞋破皮了怎么办 买的鞋鞋底太滑怎么办 鞋底磨平了很滑怎么办 包体马桶盖松了怎么办 箭牌马桶盖松了怎么办 送丝软管堵了怎么办 钢笔干了不出水怎么办 凌美钢笔不出水怎么办 新钢笔写不出水怎么办 新买的钢笔太粗怎么办 门锁螺丝拧花了怎么办 手机螺丝拧花了怎么办 电脑螺丝滑丝了怎么办 打了羽毛球手痛怎么办