当前位置: 首页 > news >正文

网络协议:知识扫盲

目录

ARP&RARP

ICMP

WebSocket

WebSocket建立连接

 WebService

 RESTFUL

简介

使用建议

HTTPDNS

 FTP

连接模式

 主动模式

被动模式

 邮件相关的协议

收发邮件的过程

 POP VS IMAP


ARP&RARP

  • ARP(Address Rusolution Protocol):译为:地址解析协议。通过IP地址获取MAC地址
  • RARP(Reverse Address Rusolution Protocol),译为:逆地址解析协议
    • 使用于ARP相同的报头结构
    • 作用与ARP相反,用于将MAC地址转换为IP地址
    • 后来被BOOTP、DHCP所取代

ICMP

  • ICMP(Internet Control Message Protocol):译为:互联网控制信息协议
    • IPv4中的ICMP被称为ICMPv4,IPv6中的ICMP被称为ICMPv6
    • 通常用于返回错误信。比如:TTL过期、目的不可达。
    • ICMP的错误消息总是包括了源数据并返回给发送者

WebSocket

  • HTTP请求的特点:通信只能由客户端发起。所以,早期很多网站为了实现推送技术,所用的技术都是轮询
    • 轮询是指由浏览器每隔一段时间(如每秒)向服务器发出HTTP请求,然后服务器返回最新的数据给客户端
    • 为了更好的节省服务器资源和带宽,并且能够更实时地进行通讯,HTML5规范中出现了WebSocket协议
  • WebSocket是基于TCP的支持全双工通信的应用层协议
    • 在2011年由IETF标准为RFC 6455,后由RFFC 7936补充规范
    • 客户端、服务器,任何一方都可以主动发信息给对方
  • WebSocket的应用场景很多:社交订阅,股票基金报价,体育实况更新,多媒体聊天,多玩家游戏等

  • WebSocket和HTTP属于平级关系,都是应用层协议
    • 其实TCP本身就是支持全双工通信的(客户端、服务器都可以主动发信息给对方)
    • 只是HTTP的“请求-应答”模式限制了TCP的能力
  • WebSocket使用80(ws://)、443(wss://)端口,可以绕过大多数防火墙的限制
    • ws://example.com/wsapi
    • wss://secure.example.com/wsapi
  • 与HTTP不同的是,WebSocket需要先建立连接
    • 这就使得WebSocket成为一种有状态的协议,之后通信时可以省略部分状态信息
    • 而HTTP请求可能需要在每一个请求都额外携带状态信息(比如身份认证等)

WebSocket建立连接

WebSocket需要借助HTTP协议来建立连接(也叫做握手,Handshake),由客户端(浏览器)主动发出握手请求

 WebService

  •  WebService,译为:Web服务,是一种跨编程语言和操作系统平台的远程调用技术标准
  • WebService使用场景距离
    • 天气预报、手机归属地查询、航班信息查询、物流信息查询等
    • 比如天气预报,是气象局把自己的服务以WebService形式暴露出来,让第三方程序可以调用这些服务功能
    • http://www.websml.com.cn/zh_cn/index.aspx
  • 事实上,WebService完全可以使用普通的Web API替代(比如HTTP + JSON)
  • 现在很多企业的开放平台都是直接采用Web API

 核心概念如下

  • SOAP(Simple Object Accerss Protocol),译为:简单对象访问协议
    • 很多时候,SOAP = HTTP + XML
    • WebService使用SOAP协议来封装传递数据
  • WSDL(Web Services Description Language),译为:Web服务描述语言
    • 一个XML文档,用以描述WebService接口的细节(比如:参数、返回值)
    • 一般在WebService的URL后面跟上?wsdl获取WSDL信息
    • 比如:http://ws.websml.com.cn/WebServices/WeatherWS.asmx?wsdl

 RESTFUL

简介

  • REST的全称是:REpresentational State Transfer,译为:表现层状态转移
  • REST是一种互联网软件架构设计风格,定义了一组用于创建Web服务的约束,符合REST架构的Web服务,称为RESTFUL Web服务

使用建议

HTTPDNS

  • HTTPDNS是基于HTTP协议向DNS服务器发送域名解析请求
    • 替代了基于DNS协议向运营商Local DNS发起解析请求的传统方式
    • 可以避免Local DNS造成的域名劫持和跨网访问问题
    • 常用在移动互联网中(比如Android、iOS开发中)

 FTP

  • FTP(File Transport Protocol),译为:文件传输协议,RFC 959定义了此规范,是基于TCP的应用层协议
  • 在RFC 1738中有定义,FTP的URI格式为:ftp://[usr[:password]@host[:port]/url-path

连接模式

  • FTP有两种连接模式:主动和被动
  • 不管哪种模式,都需要客户端和服务器建立两个连接
    • 控制连接:用于传输状态信息
    • 数据连接:用于传输文件和目录信息

 主动模式

被动模式

 邮件相关的协议

收发邮件的过程

 POP VS IMAP

 

相关文章:

  • ESPRIT 2019初学到走心机编程视频教程
  • type alias+noexcept+override+final
  • nova VirtualInterfaceCreateException (by quqi99)
  • 会员积分制度有哪些好处?
  • orc文件的读写及整合hive
  • High Performance Computing 综述
  • DoozyUI⭐️十六、Progressor Group:可视化帮手,进度条组自动求平均值
  • 高德地图 INVALID_USER_SCODE 10008 错误
  • 2020中青杯A题集成电路通道布线数学建模全过程论文及程序
  • 神经系统图 基本结构图,大脑神经网络结构图片
  • 堆排序算法用数组模拟二叉树,求A[K](K>0)的父节点坐标
  • 【Unity】物理引擎、生命周期物理阶段、刚体、碰撞体、触发器、物理材质
  • 苹果证书在线制作
  • redux太繁琐?一文入门学会使用mobx简化项目的状态管理
  • python获取获得一个月中的最后一天
  • AHK 中 = 和 == 等比较运算符的用法
  • canvas 高仿 Apple Watch 表盘
  • express如何解决request entity too large问题
  • go语言学习初探(一)
  • JavaScript设计模式系列一:工厂模式
  • LeetCode541. Reverse String II -- 按步长反转字符串
  • Promise初体验
  • Redux系列x:源码分析
  • 闭包--闭包之tab栏切换(四)
  • - 概述 - 《设计模式(极简c++版)》
  • 正则与JS中的正则
  • #图像处理
  • (1)Android开发优化---------UI优化
  • (1/2)敏捷实践指南 Agile Practice Guide ([美] Project Management institute 著)
  • (JSP)EL——优化登录界面,获取对象,获取数据
  • (附源码)ssm基于jsp的在线点餐系统 毕业设计 111016
  • (十三)Flask之特殊装饰器详解
  • (算法)Game
  • .bat批处理(三):变量声明、设置、拼接、截取
  • .NET : 在VS2008中计算代码度量值
  • /proc/interrupts 和 /proc/stat 查看中断的情况
  • ??在JSP中,java和JavaScript如何交互?
  • @Query中countQuery的介绍
  • [ 常用工具篇 ] POC-bomber 漏洞检测工具安装及使用详解
  • [ 第一章] JavaScript 简史
  • [2016.7 test.5] T1
  • [AIGC codze] Kafka 的 rebalance 机制
  • [Angular] 笔记 6:ngStyle
  • [Java] IDEA Scala环境搭建
  • [Java] 图说 注解
  • [LitCTF 2023]Http pro max plus
  • [NISACTF 2022]easyssrf
  • [Oh My C++ Diary]头文件使用之math.h与cmath
  • [pluginviteimport-analysis] vite 提示jsx语法报错
  • [python]PyPI使用国内源
  • [SSD综述 1.4] SSD固态硬盘的架构和功能导论
  • [THUPC 2024 初赛] 二进制 (树状数组单点删除+单点查询)(双堆模拟set)
  • [TLSR8266] 1、搭建tlsr8266编译框架在win服务器中
  • [vue element-ui]JAVA POST请求
  • [Vue] TodoList 案例