一文带你了解网络协议

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

🍅系列专栏:无🍅

✈️本篇内容: 网络协议

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

楔子

网络协议

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

相关推荐
二狗mao1 小时前
Uniapp使用websocket进行ai回答的流式输出
websocket·网络协议·uni-app
7***u2162 小时前
显卡(Graphics Processing Unit,GPU)架构详细解读
大数据·网络·架构
河北瑾航科技4 小时前
广西水资源遥测终端 广西水利遥测终端 广西用水监测遥测终端 河北瑾航科技遥测终端机HBJH-B01说明书
网络·科技·水文遥测终端机·遥测终端机·广西水资源遥测终端机·广西水利遥测终端·广西用水终端
羑悻的小杀马特5 小时前
轻量跨云·掌控无界:Portainer CE + cpolar 让远程容器运维像点外卖一样简单——免复杂配置,安全直达对应集群
运维·网络·安全·docker·cpolar
愚戏师6 小时前
Python3 Socket 网络编程复习笔记
网络·笔记
降临-max6 小时前
JavaSE---网络编程
java·开发语言·网络·笔记·学习
156082072197 小时前
基于7VX690T FPGA实现万兆TCP/IP资源和性能测试
网络协议·tcp/ip·fpga开发
赖small强7 小时前
【Linux 网络基础】libwebsockets HTTPS 服务端实现机制详解
linux·网络·https·tls·libwebsockets
大白的编程日记.7 小时前
【计算网络学习笔记】MySql的多版本控制MVCC和Read View
网络·笔记·学习·mysql
踏浪无痕9 小时前
线上偶发 502 排查:用 Netty 成功复现 KeepAlive 时间窗口案例实战(附完整源码)
运维·网络协议