1 / 4
文档名称:

一文带你入门网络协议.docx

格式:docx   大小:40KB   页数:4页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

一文带你入门网络协议.docx

上传人:779277932 2022/7/2 文件大小:40 KB

下载得到文件列表

一文带你入门网络协议.docx

文档介绍

文档介绍:一文带你入门网络协议

希望通过这篇文章能让读者了解什么是网络协议,以及目前我们最常接触的http和https。

网络协议是为计算机网络中进行数据交换而建立的规则、标准或约定。
众所画图。
场景:我给公司写了一个helloworld的简单的静态页面部署在公司的服务器上,我用自己的电脑在家里通过公网访问这个静态页面,比如网址是“controlprotocol,传输控制协议)是一种面向连接的,可靠的,基于字节流的,双向传输的传输层通信协议。它在建立连接时会经过三次握手,三次握手完成后才会开始传输数据;在终止连接时,它需要四次挥手。具体如下:
(1)建立连接
图源:百度百科
三次握手:
客户端发送syn报文给服务端,进入synsend状态服务器回复syn,进入synrecv状态客户端收到来自服务端的syn报文后,回复ack
客户端和服务端进入established状态,可以开始收发数据了。
(2)终止连接
图源:百度百科
四次挥手(注意:close动作可以由任意一端先发起,这里以client发起为例):客户端先调用close,执行activeclose,并发送fin表示数据发送完毕,进入finwait1状态服务端接收到fin后,执行passiveclose,并给客户端发送ack,进入closewait状态服务端给客户端发送一个fin,进入lastack状态
主动发起close的一方负责最终确认fin,这个例子就是客户端需要接收fin并回复ack给服务端,进入timewait状态,服务端收到ack后进入closed状态
为什么终止的时候是四次挥手呢?
因为一方主动发起close并发送fin仅仅代表它不再发送数据,可是还能接收数据,所以需要另一方也进行close并发送fin通知对方。至于为什么要将ack和fin分开呢?是因为ack是告诉对方“我知道了”,而fin是告诉对方“我也没有数据给你了”。而实际情况不一定是我收到fin就刚好也把数据都给完对方了,所以是需要分开的。
http
http(hypertexttransferprotocol),超文本传输协议,它是基于tcp协议实现的。
http是一种无状态协议,像我们作为游客访问一个页面时,无状态协议是简单且高效的。不过像电商场景是需要记录用户登录状态或记录购物车商品信息的(除了电商像一些中台系统也是需要记录用户状态的,这里仅是举例),这时就需要一些额外的技术协助了,如:cookie。
http报文格式
http协议的请求报文和响应报文的结构基本相同。
报文由三大部分组成:
起始行描述请求或响应的基本信息,如:get/**http/、http/200ok等头部字段集合使用key-value说明报文(想想请求头和响应头)消息正文https
http是基于tcp实现的,它的报文是明文,整个传输过程完全是透明的,任何环节都可以轻松获截、修改,这是很不安全的。因此,安全的http协议应运而生——https。https其实就是在http之上增加了ssl。
(1)ssl/tls
ssl即安全套接层(securesocketslayer),某年改名为tls(传输层安全,transportlayersecurity)
有几