web网络协议

琥珀
• 阅读 281

一、 OSI 模型

OSI = Open System Interconnect = 开放式系统互联
分层:物理层,数据链路层,网络层,传输层,会话层,表示层、应用层

  1. 物理层
    二进制传输 为传输数据所需要的物理链路进行创建、维持、拆除
    常见设备   中继器 集线器
    数据单位   比特 Bit
  2. 数据链路层
    介质访问(接入) 为网络层提供服务,在不可靠的物理介质上提供可靠的传输物理地址寻址、数据的成帧、流量控制、数据的检错、重发等。
    常见设备   二层交换机 网桥
    数据单位   帧 Frame
    web网络协议
  3. 网络层
    寻址和最短路径 使数据路由经过大型网络
    常见设备 路由器
    数据的单位 包 Packet
  4. 传输层
    进程间通信 提供终端到终端的可靠连接
    数据的单位 数据段 Segment
  5. 会话层
    主机间通信 管理主机之间的会话进程,即负责建立、管理、终止进程之间的会话
  6. 表示层
    数据表示 包括编码解码、加密解密、压缩解压缩
  7. 应用层
    处理网络应用
缩写全称用途
DNS域名解析服务域名解析
HTTP超文本传输协议网页浏览
SMTP简单邮件传输协议电子邮件发送
POP3邮局协议版本3电子邮件接收
FTP文件传输协议文件传输
SFTP安全文件传输协议文件传输

二、 TCP/IP 协议族

  1. TCP/IP 和 OSI
    TCP/IP 协议族对 OSI 模型进行了简化
    OSI 上三层合并为 TCP/IP 应用层    OSI 的物理层和数据链路层合并为 TCP/IP 网络接入层
    web网络协议
  2. IP 协议
    IP = Internet Protocol = 互联网络协议
    IP 是一种 网络层 的协议,用于将多个包交换网络连接起来的,在源地址和目的地址之间传送数据报。
  3. TCP 协议
    TCP = Transmission Control Protocol = 传输控制协议
    TCP 是一种基于连接的 传输层 协议,提供了端到端的可靠的通信服务

通信方式
单工     只能单方向通信。如广播。
半双工   以实现双向的通信,但不能在两个方向上同时进行,必须轮流交替地进行。如对讲机。
全双工   数据同时在两个方向上传输。如电话。

建立TCP连接   三次握手
web网络协议

建立连接一定是客户端主动发起
1.客户端->服务器 同步标志位SYN有效,表示客户端希望和服务器建立连接,有发送序号seq=100
2.服务器->客户端 确认标志位ACK有效,确认号ack=101,表示服务器同意客户端发送序号是100的连接请求,同步标志位SYN有效,表示服务器希望和客户端建立连接,有发送序号seq=200
3.客户端->服务器 确认标志位ACK有效,确认号ack=201,表示客户端同意服务器发送序号是200的连接请求,客户端的发送序号seq自增,值为101

断开TCP连接   四次挥手
web网络协议

断开连接客户端和服务器都可以主动发起,以客户端主动发起为例
1.客户端->服务器 结束标志位FIN有效,表示客户端希望和服务器断开连接,有发送序号seq=300
2.服务器->客户端 确认标志位ACK有效,确认号ack=301,表示服务器同意客户端发送序号是300的断开连接请求,有发送序号seq=400
3.服务器->客户端 确认标志位ACK有效,确认号ack=301,表示服务器对客户端发送序号是300的断开连接请求的回应,结束标志位FIN有效,表示服务器希望和客户端断开连接,有发送序号seq>=400
4.客户端->服务器 确认标志位ACK有效,确认号ack>=401,表示客户端同意服务器发送序号是>=400的断开连接请求,客户端的发送序号seq自增,值为301
  1. UDP 协议
    UDP = User Datagram Protocol = 用户数据报协议
    UDP 是一种无连接的 传输层 协议,提供面向事务的简单不可靠信息传送服务
    优点
    数据传输过程中延迟小,数据传输效率高,速度快
    缺点
    不提供数据包分组和组装,不能对数据包进行排序;
    不保证数据传输的可靠性,可靠性由上层(应用层)保证

UDP 和 TCP 的对比

TCPUDP
名称传输控制协议用户数据报协议
连接面向连接无连接
传输模式字节流报文
传输可靠性可靠不可靠
资源占用较多较少
复杂度较复杂较简单
数据顺序保证不保证
传输效率
  1. HTTP 协议
    HTTP = HyperText Transfer Protocol = 超文本传输协议
    HTTP 是一种 应用层 的协议
    规定了浏览器和 Web 服务器之间互相通信的规则, 通过网络传送 Web 文档的数据传送协议

特点

  • HTTP 协议是一种请求-应答式的协议
  • 从建立连接到关闭连接的过程称为“一次连接”
  • 最显著的特点是客户端发送的每次请求都需要服务器回送响应,在请求结束后,会主动释放连接。

原理

  • 连接用完就释放
  • 需要不断向服务器发起连接请求来保持在线状态。
  • 若服务器长时间无法收到客户端的请求,则认为客户端“下线”
  • 若客户端长时间无法收到服务器的回复,则认为网络已经断开

两个版本差异
HTTP 协议是无连接的协议

  • HTTP 1.0 短连接(非持久连接)
    客户端的每次请求都要求建立一次单独的连接
    在处理完本次请求后,就自动释放连接
  • HTTP 1.1 长连接(持久连接)
    可以在一次连接中处理多个请求
    并且多个请求可以重叠进行, 不需要等待一个请求结束后再发送下一个请求

HTTP 请求
请求 Request ,由客户端发送给服务器端
请求的方法(方式 Method)
GET 请求 主要是数据的获取
POST 请求 主要是数据的提交

==GET 请求和 POST 请 求 的 区 别 :(★)==

  • GET使用URL或Cookie传参。而POST将数据放在BODY中。
  • GET的URL会有长度上的限制,则POST的数据则可以非常大。
  • POST比GET安全,因为数据在地址栏上不可见。
  • 一般GET请求用来获取数据,POST请求用来发送数据,数据提交。

HTTP 响应
响应 Response ,由服务器端返回给客户端

  • 正常响应状态码 1XX,2XX,3XX
  • 正常状态码
  • 异常响应状态码 4XX,5XX
  • Not Found 找不到需要访问的资源

HTTPS请求特点

  • 为了数据传输的安全,HTTPS在HTTP的基础上加入了SSL/TLS协议,SSL/TLS依靠证书来验证服务器的身份,并为浏览器和服务器之间的通信加密。
  • HTTPS协议是由SSL/TLS+HTTP协议构建的可进行加密传输、身份认证的网络协议,要比http协议安全。
  • HTTPS协议的主要作用可以分为两种:一种是建立一个信息安全通道,来保证数据传输的安全;另一种就是确认网站的真实性。

==HTTPS和HTTP的主要区别:(★)==

  • https协议需要到CA申请证书,一般免费证书较少,因而需要一定费用。
  • http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl/tls加密传输协议。
  • http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。
  • http的连接很简单,是无状态的。
    总结:HTTPS协议是由SSL/TLS+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。

三、Wireshark

  1. Wireshark 的特点
    是非常流行的网络封包分析软件;
    可以截取各种网络封包,显示网络封包的详细信息,但不能修改数据包的内容或者发送数据包;
    能获取 HTTP、HTTPS,但是不能解密 HTTPS,所以无法读取 HTTPS 中的内容。
  2. 过滤数据包
过滤要求过滤条件表达式
过滤 IP 地址ip.addr==172.31.128.199
过滤源 IP 地址ip.src==172.31.128.199
过滤 目的IP 地址ip.dst==172.31.128.199
过滤端口tcp.port==80
过滤源端口tcp.srcport==80
过滤目的端口tcp.dstport==80
过滤协议http
过滤HTTP 请求方式GEThttp.request.method=="GET"
过滤HTTP 请求方式POSThttp.request.method=="POST"

四、 Cookie 和 Session

Web 网站如何进行会话跟踪

困难
HTTP 协议是无状态协议
HTTP 协议不保存客户端信息,无法区分每次请求的不同之处

解决方法
Cookie

  • 服务器暂存放在用户计算机上的一些资料,可以让服务器用来辨认用户的计算机。
  • Cookie 通过在客户端记录信息确定用户身份
  • 应用
    保存用户的身份信息
    用户在上一次浏览网站时的表单输入和操作步骤
    因为 Cookie 保存在客户端所以用户可以看见,所以也可以编辑伪造,不是很安全

Session 会话

  • Session 通过在服务端端记录信息确定用户身份
  • 当访问网站时,服务器会标示该访问者,给它一个 Session ID,当会话过期后就删除这个 SessionID
  • Session ID 以响应的方式传递给客户端,以 Cookie 的形式保存在客户端中, 客户端在后续的请求中将保存该 Session ID 值的 Cookie 回传给服务器,服务器就可以用来对客户端的身份进行验证
  • Session 保存在服务器,Session 过多的时候会消耗服务器资源,所以大型网站会有专门的Session 服务器
点赞
收藏
评论区
推荐文章
胖大海 胖大海
2年前
TCP/IP协议详解
TCP/IP不是一个协议,而是一个协议族的统称。里面包括IP协议、IMCP协议、TCP协议。TCP/IP协议模型,包含了一系列构成互联网基础的网络协议,是Internet的核心协议。基于TCP/IP的参考模型将协议分成四个层次,它们分别是链路层、网络层、传输层和应用层。下图表示TCP/IP模型与OSI模型各层的对照关系。1)网络接口层:主要是指物理层次
Easter79 Easter79
3年前
tcp和socket和http的区别
又一次感觉到大学本科的基础知识没好好学习。估计光顾着泡妞找对象和睡觉了,后悔莫及啊。网络由下往上分为  物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。  通过初步的了解,我知道IP协议对应于网络层,TCP协议对应于传输层,而HTTP协议对应于应用层,  三者从本质上来说没有可比性,  socket则是对TCP/IP协议的封装
Easter79 Easter79
3年前
TCP、UDP、HTTP、HTTPS之前的区别
网络由下往上分为:物理层数据链路层网络层  IP协议传输层  TCP协议会话层表示层和应用层  HTTP协议!(https://oscimg.oschina.net/oscnet/aeb8a94598094caf8c377e1277ba95948ea.png)1、TCP/IP连接TC
Wesley13 Wesley13
3年前
TCP通讯协议
HTTP协议通信原理OSI七层网络模型包含(应用层、表示层、会话层、传输层、网络层、数据链路层、物理层)TCP/IP四层概念模型包含(应用层、传输层、网络层、数据链路层)!(https://oscimg.oschina.net/oscnet/upbf558b4f7572e8d2211102742395b069235.png
Wesley13 Wesley13
3年前
网络
文章目录深入理解TCP/IP协议1、TCP/IP协议的概念2、TCP/IP的分层管理1\.物理层2\.数据链路层MAC地址广播3\.网络层IP协议4\.传输层UDP协议TCP协议5\.应用层(会
Stella981 Stella981
3年前
Socket编程(网络协议一)
“我们在传输数据时,可以只使用(传输层)TCP/IP协议,但是那样的话,如果没有应用层,便无法识别数据内容“TCP/IP只是一个协议栈,就像程序运行一样,必须要实现运行,同时还要提供对外的操作接口网络从下往上分为  物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。IP协议对应于网络层,TCP协议对应于传输层,而HTTP协议对应于应用层,
Stella981 Stella981
3年前
Socket的基础概念
一、网络各个协议:TCP/IP、SOCKET、HTTP等网络七层由下往上分别为物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。其中物理层、数据链路层和网络层通常被称作媒体层,是网络工程师所研究的对象;传输层、会话层、表示层和应用层则被称作主机层,是用户所面向和关心的内容。http协议  对应于应用层  tcp协议  对应于传
Wesley13 Wesley13
3年前
TCP协议
ISO/OSI网络模型共有七层:物理层,数据链路层,网络层,传输层,会话层,表示层,应用层。TCP/IP网络模型:应用层,传输层,网际层,网络接口!(https://static.oschina.net/uploads/img/201711/291518
Stella981 Stella981
3年前
Linux网络基础(一)——网络模型
【网络模型】1.OSI七层模型:(从高到低)应用层表示层会话层传输层网络层数据链路层物理层2.TCP/IP四层网络模型:接入网层网间网络层传输层应用层3.IP地址:——32位的二进制表示,通常用4组8位二进制
Wesley13 Wesley13
3年前
5层网络模型介绍
!(https://img2018.cnblogs.com/blog/331769/201811/33176920181124200628267282150559.png)在网络协议当中,我们一般会去讲解整个网络信息传输的整个过程的时候,都会套用一个经典都5层模型,在这5层模型里面,我们分为应用层,传输层,网络层,数据链路层和物理层,这个在每台电
专注IP定位 专注IP定位
3年前
网络七层结构是干啥的? 看这篇文章就够了
前言“物理层、数据链路层、网络层、传输层、会话层、表示层和应用层”,今天我们的目标就是把这些个玩意,翻译成“人话”,保证你一看就懂,一学就废网络七层结构,相信是个搞计算机网络的,或者是搞软件开发的,甚至是搞互联网的,99%的人应该都知道,最起码那也得是听过,就是下方这个玩意:(你要是听都没听过,别跟我说你是混迹于互联网界的啊)但是,如果让这些人讲清楚这七层结