http规范把http报文解释的很清楚,但是对http链接却介绍的不是很多。http连接是http报文传输的关键通道。你如果是一个http应用程序员,你需要理解http连接并且学会使用它们。
http管理有点像是魔术,学习它们应当从实际工作中的经验与实践,而不仅仅是出版的文献中。通过本章可以了解到:
http是如何使用tcp连接的
tcp的延时,阻塞。以及存在的障碍。
http的优化,包括并行连接,keep-alive持久连接和管道化连接
管道连接应该做和不应该做的事情
tcp连接
世界上所有的http通信都是承载上tcp、ip上的。tcp/ip是全球计算机及网络设备都在使用的一种常用的分组交换网络分层协议集。客户端程序一旦开启一个tcp/ip的连接,就可能连接到世界上任何地方打开的服务器应用程序。一旦连接建立起来。报文就可以在服务器和客户端之间进行交换。
并且不会丢失,损坏,失序。比如你想看某一个网页
http:www.oldcaptain.cc/index.html
浏览器收到这个url,浏览器将会执行如果4-1的步骤,服务器的ip地址,和端口号,将会从url中分离出来。和web服务器建立tcp连接发生在第四步,一个request的报文通过连接在第5步进行发送。response在第6步收到,在第7步关闭连接
tcp的可靠数据管道
http连接实际上就是使用的tcp连接,已经tcp的一些规则。tcp连接是可靠的internet协议。要想正确,快速的发送数据,就需要了解tcp的一些基本知识。tcp为http提供了一个可靠的比特传送管道。tcp一端发送的数据,会从另一端按照原有的顺序发送出来。
tcp流逝分段的,由ip分组传送
tcp数据是通过名为ip分组(或ip数据报)的小数据块来发送的。这样的话如图4-3就是一个http-tcpoverip的协议栈,https就是在http与tcp中间插入tls或者ssl层
当http想要传输消息时,会以流的形式包含数据然后打开一个tcp连接,tcp可以将其分割成小块的数据块。并且将数据再封装为ip包,请看图4-4,这副图展现了tcp、ip协议族的处理,http程序员看不到底层封装细节。
每个tcp包都有ip分组承载。从一个ip地址发送到另外一个ip地址每个ip分组都包括:
一个ip分组首部(包含20个字节)
一个tcp段首部(通常为20个字节)
一个tcp数据块(0个或多个字节)
ip首部包含了源和目的ip地址,长度和其他一些标记。tcp段的首部包含了tcp端口号,tcp控制标记,以及适用于数据排序和完整检查的一些数字
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于