一文带你了解网络协议

✨这里是小松猿的博客✨小松,欢迎您的到来~✨

🍅系列专栏:无🍅

✈️本篇内容: 网络协议

🍱本篇收录完整代码地址:无🍱

楔子

网络协议

1,tcp/ip

#tcp/ip协议族:计算机与网络设备之间互相通信,双方就必须基于同样的方法。比如:如何发现通信目标、由谁发起通信、使用什么语言通信、怎么结束通信都需要事先确定,

##所有这些都需要一种规则,这就是协议。协议中存在多种的内容;从电缆的规格到ip地址的选定方法,寻找异地用户的方法,建立通信的顺序,以及web页面显示需要处理的步骤等等

##像这样把与互联网相关联的协议集合起来统称为tcp/ip

#tcp/ip的分层:tcp/ip很重要的一个特点就是分层。按照层次分为以下四层:应用层,传输层,网络层和数据链路层

#分层的好处:如果互联网只由一个协议统筹,那么某一地方出问题,整体都会出现问题,无法使用;分层后,只需替换出现问题的或者需要修改的即可,而且分层后针对具体的设计也变得更为简单

#应用层:体系的最高层,应用进程间通信交互的规则,tcp/ip协议族预存了各类通用的应用服务,比如:

#ftp:文件传输协议

#dns:域名系统协议

#http:万维网应用协议

#smtp:电子邮件协议

#websocket:websocket协议

#以上几种是常用的几种,还有很多其他的协议,感兴趣的可以找找其他专业的书籍看看

#传输层:提供处于网络连接中的两台计算机间的数据传输,其中包括tcp和udp两种性质不同的协议

#tcp:传输控制协议,传输的单位为报文段,提供面向连接的,可靠的数据传输服务

#数据传输中为了传输方便,会将大块数据分割成报文段,而tcp协议能确认数据最终是否传送给对方为了准确传输,传输中采用了三次握手策略(这种手段可以理解为多次确认,来确保数据传输的可靠性)

#udp:传输单位为用户数据报,它是尽最大努力的提供数据传输服务,不保证可靠性

#网络层:又名网络连接层

#用来处理在网络上流动的数据包(封装)。数据包是网络传输的最小数据单位。该层规定了通过怎样的路径到达对方计算机并把数据包传给对方

#链路层:又名数据链路层,网络接口层

#处理连接网络的硬件部分。比如控制操作系统、硬件的驱动、网络适配器、光钎等

#数据的封装:用户端发送一个请求,从应用层开始,一直到链路层,每一层都会被打上该层所属的首部信息;反之,接收端在层与层之间传输时,每经过一层会去掉该层的首部信息,这种做法叫做封装

2,http/https

#http协议:http协议用于客户端和服务器之间的通信,请求访问资源的一方称为客户端,而提供资源响应的一方称为服务器端。

#请求体的构成:

#请求行:post /index.html HTTP/1.1

#请求方法:get,post,patch,put,delete,head等

#请求URL:资源定位

#http协议及版本:http 0.9、http 1.0、http 1.1、http 2.0

#请求头(Request Header)

#accept:请求报文可通过一个"Accept"报文头属性告诉服务端 客户端接受什么类型的响应。Accept: text/plain

#Accept-Charset:可接受的字符集 Accept-Charset: utf-8

#cookie:用户存取用户的session

#Referer:包含一个URL,用户从该URL代表的页面出发访问当前请求的页面。

#User-Agent:浏览器类型,如果Servlet返回的内容与浏览器类型有关则该值非常有用

#Host:初始URL中的主机和端口。

#Connection:表示是否需要持久连接。如果Servlet看到这里的值为"Keep-Alive",或者看到请求使用的是HTTP 1.1(HTTP 1.1默认进行持久连接)

#请求正文

#请求头和请求正文之间是一个空行,它表示请求头已经结束,接下来的是请求正文。请求正文中可以包含客户提交的查询字符串信息

#username=cmc&password=1234或者{'username':'cmc','password':'1234'}等

#响应体构成:

#状态行:HTTP/1.1 200 OK

#http协议及版本:http 0.9、http 1.0、http 1.1、http 2.0

#响应状态码:

#1xx 消息,一般是告诉客户端,请求已经收到了,正在处理,别急...

#2xx 处理成功,一般表示:请求收悉、我明白你要的、请求已受理、已经处理完成等信息.

#3xx 重定向到其它地方。它让客户端再发起一个请求以完成整个处理。

#4xx 处理发生错误,责任在客户端,如客户端的请求一个不存在的资源,客户端未被授权,禁止访问等。

#5xx 处理发生错误,责任在服务端,如服务端抛出异常,路由出错,HTTP版本不支持等。

#响应头:

#Access-Control-Allow-Origin:指定哪些网站可以跨域源资源共享,Access-Control-Allow-Origin: *

#Set-Cookie:服务端设置客户端HTTP cookie,Set-Cookie: UserID=itbilu; Max-Age=3600; Version=1

#Expires:指定一个日期/时间,超过该时间则认为此回应已经过期,Expires: Thu, 01 Dec 1994 16:00:00 GMT

#Server:服务器的名称 Server: nginx/1.6.3

#Content-Encoding:响应资源所使用的编码类型。 Content-Encoding: gzip

#Content-Language:响就内容所使用的语言 Content-Language: zh-cn

#Content-Length:响应消息体的长度,用8进制字节表示

#响应正文:

#服务器返回的内容,网页,图片,等等

#https协议:

#http缺点:

#通信使用明文(不加密),内容可能会被窃听

#不验证通信方的身份,因此可能遭遇伪装

#无法证明报文的完整性,所以有可能已被篡改

#某些特定web服务器和特定web浏览器存在安全漏洞

#https原理详解(裂墙推荐):http://blog.csdn.net/u014044812/article/details/79571927

3,websocket

#WebSocket protocol 是HTML5一种新的协议。它实现了浏览器与服务器全双工通信(full-duplex)。一开始的握手需要借助HTTP请求完成,连接以后通过帧来通信。

#维基百科:https://zh.wikipedia.org/wiki/WebSocket

#推荐博文:https://www.cnblogs.com/lizhenghn/p/5155933.html

##https://www.zhihu.com/question/20215561

4,HTTP/2

#维基百科:https://zh.wikipedia.org/wiki/HTTP/2

相关推荐
sunfove2 小时前
光网络的立交桥:光开关 (Optical Switch) 原理与主流技术解析
网络
Kevin Wang7274 小时前
欧拉系统服务部署注意事项
网络·windows
min1811234564 小时前
深度伪造内容的检测与溯源技术
大数据·网络·人工智能
汤愈韬5 小时前
NAT策略
网络协议·网络安全·security·huawei
汤愈韬5 小时前
Full Cone Nat
网络·网络协议·网络安全·security·huawei
zbtlink5 小时前
现在还需要带电池的路由器吗?是用来干嘛的?
网络·智能路由器
桌面运维家5 小时前
vDisk配置漂移怎么办?VOI/IDV架构故障快速修复
网络·架构
dalerkd5 小时前
忙里偷闲叙-谈谈最近两年
网络·安全·web安全
汤愈韬6 小时前
NAT ALG (应用层网关)
网络·网络协议·网络安全·security·huawei
运维栈记7 小时前
虚拟化网络的根基-网络命名空间
网络·docker·容器