一文带你搞懂JSON和TCP/IP

简介: 一文带你搞懂JSON和TCP/IP

Part one–json


json是什么?


javaScript object Notation =>JS对象表示法


  • JS中的对象只有JS自己认识,其他的语言都不认识。


  • 而JSON就是一个特殊格式的字符串,这个字符串可以被任意的语言所识别。并且可以转换为任意语言中的对象,JSON在开发中主要用来数据的交互。


为什么使用json


因为 json 格式仅仅是文本,它能够轻松地在服务器浏览器之间传输,并用作任何编程语言的数据格式。


语法格式


  • 数据在名称/值对中


  • 数据由逗号分隔


  • 花括号容纳对象


  • 方括号容纳数组


json举例


以下obj是一个js对象:


let obj = {
   'name':'suliang',
   'age':21,
   'gender':'男'
};
console.log(obj.name); //suliang


  • JSON和JS对象的格式一样,只不过JSON字符串中的属性名必须加双引号


以下obj2就是一个json对象


let obj2 = '{"name":"suliang","age":21, "gender":"男"}'
console.log(typeof obj2); //string


json的分类


  • 数组[]


  • 对象{}


json允许存在的数据类型


  • String


  • Number


  • Boolean


  • Object


  • Array


  • Null


json数据转换


在js中为我们提供了一个工具类:JSON


我们可以利用它的一些方法,将json转换为js对象,也可以将js对象转换为json。


JSON.parse()方法 - json转js对象


将一个json字符串作为参数,可以将对于json字符串转换为js对象。


该方法具有返回值,返回的是一个对象(object)。如:


//创建一个json对象
let obj2 = '{"name":"suliang","age":21, "gender":"男"}'
// console.log(typeof obj2); //string
let result = JSON.parse(obj2);
console.log(result); //{name: 'suliang', age: 21, gender: '男'}


JSON.stringify()方法 - js对象转json


将一个js对象作为参数,可以将对于js对象转换为json。


该方法具有返回值,返回的是一个字符串(String)。如:


let obj3 ={
   name:'ming',
   age:22,
   gender:'男'
}
let result2 = JSON.stringify(obj3);
console.log(result2,typeof result2);  //{"name":"ming","age":22,"gender":"男"} string


json与xml的不同之处


json格式:


{"member":
{"name":"suliang","age":21},
{"name":"xiaohu","age":24}
}


xml格式:


{<member>
    <mber>
        <name>suliang</name>
        <age>21</age>
    </mber>
    <mber>
        <name>xiaohu</name>
        <age>24</age>
    </mber>
</member>
}


相比于xml语法格式,json还是很简便的。


json与xml的差异在于:


  • json不使用标签


  • json更短


  • json的读写速度更快


  • json可使用数组


xml必须使用xml解析器进行解析。而json可通过标准的 JavaScript 函数进行解析。


Part two–TCP/IP


TCP/IP 是针对因特网的通信协议


  • 通信协议是对计算机必须遵守的规则的描述,只有遵守这些规则,计算机之间才能进行通信。


TCP/IP是什么?


  • TCP/IP 是供已连接因特网的计算机进行通信的通信协议。


  • TCP/IP 指传输控制协议/网际协议(Transmission Control Protocol / Internet Protocol)。


  • TCP/IP 定义了电子设备(比如计算机)如何连入因特网,以及数据如何在它们之间传输的标准


TCP/IP内部协议


在 TCP/IP 中包含一系列用于处理数据通信的协议


  1. TCP (传输控制协议) -应用程序之间通信


  1. UDP (用户数据包协议) - 应用程序之间的简单通信


  1. IP (网际协议) - 计算机之间的通信


  1. ICMP (因特网消息控制协议) - 针对错误和状态


  1. DHCP (动态主机配置协议) - 针对动态寻址


TCP/IP


  • TCP/IP 意味着 TCP 和 IP 在一起协同工作


  • TCP 负责应用软件(比如你的浏览器)和网络软件之间的通信。IP 负责计算机之间的通信。


  • TCP 负责将数据分割并装入 IP 包,然后在它们到达的时候重新组合它们。IP 负责将包发送至接受者。


TCP/IP 寻址


TCP/IP 使用32 个比特或者4个0~255 之间的数字来为计算机编址。


IP地址


  • 每个计算机必须有一个 IP 地址才能够连入因特网。


  • 每个 IP 包必须有一个地址才能够发送到另一台计算机。


TCP/IP 使用4个数字来为计算机编址。每个计算机必须有一个唯一的 4 个数字的地址。

数字在 0 到 255 之间,并由点号隔开。


如:192.168.2.2


TCP使用固定连接


TCP 用于应用程序之间的通信


应用程序希望通过 TCP 与另一个应用程序通信时,它会发送一个通信请求。这个请求必须被送到一个确切的地址。在双方“握手”之后,TCP 将在两个应用程序之间建立一个全双工 (full-duplex) 的通信。这个全双工的通信将占用两个计算机之间的通信线路,直到它被一方或双方关闭为止。UDP 和 TCP 很相似,但是更简单,同时可靠性低于 TCP。


域名


用于 TCP/IP 地址的名字被称为域名


https://www.baidu.com中的www.baidu.com就是域名。域名会被一种DNS程序翻译为数字。


在全世界,数量庞大的 DNS 服务器被连入因特网。DNS 服务器负责将域名翻译为 TCP/IP 地址,同时负责使用新的域名信息更新彼此的系统。


当一个新的域名连同其 TCP/IP 地址一同注册后,全世界的 DNS 服务器都会对此信息进行更新。


协议簇


TCP/IP 是基于 TCP 和 IP 这两个最初的协议之上的不同的通信协议的大的集合


计算机中几种常见的通信协议


1.TCP - 传输控制协议


  • TCP 用于从应用程序到网络的数据传输控制。


  • TCP 负责在数据传送之前将它们分割为 IP 包,然后在它们到达的时候将它们重组。


2.IP - 网际协议


  • IP 负责计算机之间的通信。


  • IP 负责在因特网上发送和接收数据包。


3.HTTP - 超文本传输协议


  • HTTP 负责 web 服务器与 web 浏览器之间的通信。


  • HTTP 用于从 web 客户端(浏览器)向 web 服务器发送请求,并从 web 服务器向 web 客户端返回内容(网页)。


4.HTTPS - 安全的 HTTP


  • HTTPS 负责在 web 服务器和 web 浏览器之间的安全通信。作为有代表性的应用,
  • HTTPS 会用于处理信用卡交易和其他的敏感数据。


5.SSL - 安全套接字层


  • SSL 协议用于为安全数据传输加密数据。


6.SMTP - 简易邮件传输协议


  • SMTP 用于电子邮件的传输。


7.MIME - 多用途因特网邮件扩展


  • MIME 协议使 SMTP 有能力通过TCP/IP 网络传输多媒体文件,包括声音、视频和二进制数据。


8.IMAP - 因特网消息访问协议


  • IMAP 用于存储和取回电子邮件。


9.POP - 邮局协议


  • POP用于从电子邮件服务器向个人电脑下载电子邮件。


10.FTP - 文件传输协议


  • FTP 负责计算机之间的文件传输。


11.NTP - 网络时间协议


  • NTP 用于在计算机之间同步时间(钟)。


12.DHCP - 动态主机配置协议


  • DHCP 用于向网络中的计算机分配动态 IP 地址。


13.SNMP - 简单网络管理协议


  • SNMP 用于计算机网络的管理。


14.LDAP - 轻量级的目录访问协议


  • LDAP 用于从因特网搜集关于用户和电子邮件地址的信息。


15.ICMP - 因特网消息控制协议


  • ICMP 负责网络中的错误处理。


16.ARP - Address Resolution Protocol


  • ARP - 用于通过 IP 来查找基于 IP 地址的计算机网卡的硬件地址。


17.RARP - Reverse Address Resolution Protocol


  • RARP 用于通过 IP 查找基于硬件地址的计算机网卡的 IP 地址。


18.BOOTP - Boot Protocol


  • BOOTP 用于从网络启动计算机。


19.PPTP - 点对点隧道协议


  • PPTP 用于私人网络之间的连接(隧道)。
目录
相关文章
|
运维 监控 网络协议
QT实现TCP通信:从基础到高级的全面解析
QT实现TCP通信:从基础到高级的全面解析
1700 0
|
编解码 网络协议 安全
一文看懂音视频流媒体协议及信令技术
音视频通信完整流程有如下几个环节:采集、编码、前后处理、传输、解码、缓冲、渲染等。 每一个细分环节,还有更细分的技术模块。比如,前后处理环节有美颜、滤镜、回声消除、噪声抑制等,采集有麦克风阵列等,编解码有H.263,H.264、H.265等,传输就涉及到了本文重点介绍的RTSP/RTMP/RTP/RTCP等流媒体协议以及相关的信令技术。
一文看懂音视频流媒体协议及信令技术
如何将DataGridView中的滚动条显示出来
1、选项设置   DataGridView有一个ScrollBars,可以设置水平滚动条,垂直滚动条,或者两种包含。   2、实际运行效果
5802 0
TortoiseSVN安装使用教程(超详细)
TortoiseSVN安装使用教程(超详细)
10248 58
|
11月前
|
PyTorch 算法框架/工具 Python
yolov5的完整部署(适合新人和懒人,一键安装)
这篇文章为新人和希望简化部署过程的用户介绍了如何一键安装和配置YOLOv5环境,包括安装Anaconda、设置镜像源、安装PyCharm、创建虚拟环境、下载YOLOv5项目、安装依赖以及在PyCharm中配置和运行项目。
6356 0
yolov5的完整部署(适合新人和懒人,一键安装)
|
11月前
|
缓存 关系型数据库 MySQL
一文彻底弄懂MySQL优化之深度分页
【10月更文挑战第24天】本文深入探讨了 MySQL 深度分页的原理、常见问题及优化策略。首先解释了深度分页的概念及其带来的性能和资源问题。接着介绍了基于偏移量(OFFSET)和限制(LIMIT)以及基于游标的分页方法,并分析了它们的优缺点。最后,提出了多种优化策略,包括合理创建索引、优化查询语句和使用数据缓存,帮助提升分页查询的性能和系统稳定性。
1166 1
|
XML JSON JavaScript
JsonRPC协议详解(协议介绍、请求示例、响应示例)
RPC(远程过程调用)是一种用于实现分布式系统中不同进程或不同计算机之间通信的技术。它允许我们像调用本地函数一样调用远程计算机上的函数,使得分布式系统的开发变得更加简单和高效。 JsonRPC是一种基于JSON(JavaScript Object Notation)的轻量级远程过程调用协议。与其他RPC协议相比,JsonRPC使用简单的文本格式进行通信,易于阅读和编写,广泛应用于Web服务和分布式系统中。
1588 0
|
Ubuntu 安全 网络协议
|
存储 安全 算法
公钥基础设施(PKI)的核心概念详解
【8月更文挑战第31天】
1964 0
|
存储 缓存 JSON
详解HTTP四种请求:POST、GET、DELETE、PUT
【4月更文挑战第3天】
66551 4
详解HTTP四种请求:POST、GET、DELETE、PUT