网络通信经过

关于HTTP协议,一篇就够了
https://www.jianshu.com/p/80e25cb1d81a

tcp使用安全的网络通信协议,和不靠谱的传输协议ip,所以可能发生丢包的情况。
tcp的作用就是在用ip传输协议进行传输文件时,把大的数据块分割成以报文段为单位的数据包进行管理(并排序)。并在ip协议发生丢包时,通知http重新发送。在接收时,按顺序重组。

dns服务是和http协议位于应用层的协议,他提供域名到ip地址之间的解析服务。

ip协议的职责是搜索对方的地址,接收tcp传来的一个个数据包,一边中转一边传送。

客户端发送请求给服务器想要查看web页面的http请求,为了传输方便,引入tcp,在收到应用层数据时进行分割,把http报文打上标记序号、端口号…,通过ip协议把数据包传送给对方(ip地址)。

在这里插入图片描述

HTTP协议的长连接和短连接

HTTP属于应用层协议,在运输使用TCP协议,在网络层使用IP协议。IP协议只要解决网络路由和寻址问题,TCP协议主要解决如何在IP网络层之上可靠的传输数据包,使得网络上接收端可以接收到发送端发出的所有的包,并且顺序与发送顺序一致。
由HTTP与TCP的关系可以得出 首先 HTTP的数据包的运输是交由TCP协议的,那么短连接的产生实质上是TCP协议在client和server之间进行了三次握手 - 传输数据 - (一般client主动断开)四次挥手,长连接实质上是TCP协议在client和server之间进行三次握手 - 传输数据 - 传输数据 …(两端均不主动关闭)

短连接是指通讯双方有数据交互时,就建立一个连接,数据发送完成后,则断开此连接,即每次连接只完成一项业务的发送。
长连接多用于操作频繁,点对点的通讯,而且连接数不能太多情况。每个TCP连接都需要三步握手,这需要时间,如果每个操作都是短连接,再操作的话那么处理速度会降低很多,所以每个操作完后都不断开,下次处理时直接发送数据包就OK了,不用建立TCP连接。例如:数据库的连接用长连接,如果用短连接频繁的通信会造成socket错误,而且频繁的socket 创建也是对资源的浪费。
而像WEB网站的http服务一般都用短链接,因为长连接对于服务端来说会耗费一定的资源,而像WEB网站这么频繁的成千上万甚至上亿客户端的连接用短连接会更省一些资源,如果用长连接,而且同时有成千上万的用户,如果每个用户都占用一个连接的话,那可想而知吧。所以并发量大,但每个用户无需频繁操作情况下需用短连好。

输入网址www.baidu.com,dns先把网址解析成ip地址14.215.177.39,tcp创建主机和服务器的链接。
(1) 浏览器获取输入的域名www.baidu.com
(2) 浏览器向DNS请求解析www.baidu.com的IP地址
(3) 域名系统DNS解析出百度服务器的IP地址
(4) 浏览器与该服务器建立TCP连接(默认端口号80)
(5) 浏览器发出HTTP请求,请求百度首页
(6) 服务器通过HTTP响应把首页文件发送给浏览器
(7) TCP连接释放
(8) 浏览器将首页文件进行解析,并将Web页显示给用户。

DNS( Domain Name System)是“域名系统”的英文缩写,是一种组织成域层次结构的计算机和网络服务命名系统,它用于TCP/IP网络,它所提供的服务是用来将主机名和域名转换为IP地址的工作。DNS就是这样的一位“翻译官”,它的基本工作原理可用下图来表示。
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值