首页 > 其他分享 >一文带你搞懂JSON和TCP/IP

一文带你搞懂JSON和TCP/IP

时间:2022-10-17 13:04:43浏览次数:51  
标签:计算机 IP JSON TCP js json 因特网 搞懂


文章目录

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 (传输控制协议) -应用程序之间通信
  2. UDP (用户数据包协议) -应用程序之间的简单通信
  3. IP (网际协议) -计算机之间的通信
  4. ICMP (因特网消息控制协议) - 针对错误和状态
  5. 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 客户端返回内容(网页)。

3.HTTPS - 安全的 HTTP

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

4.SSL - 安全套接字层

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

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

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

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

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

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

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

8.POP - 邮局协议

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

9.FTP - 文件传输协议

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

10.NTP - 网络时间协议

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

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

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

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

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

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

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

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

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

15.ARP - Address Resolution Protocol

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

16.RARP - Reverse Address Resolution Protocol

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

17.BOOTP - Boot Protocol

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

18.PPTP - 点对点隧道协议

  • PPTP 用于私人网络之间的连接(隧道)。

标签:计算机,IP,JSON,TCP,js,json,因特网,搞懂
From: https://blog.51cto.com/u_15831459/5762325

相关文章

  • 【微信小程序】一文带你搞懂小程序的页面配置和网络数据请求
    文章目录​​页面配置​​​​页面配置文件的作用​​​​页面配置和全局配置的关系​​​​页面配置​​​​网络数据请求​​​​网络数据请求的限制​​​​配置request......
  • @JsonSerialize(using = ToStringSerializer.class) 转换失败
    解决方案但实际开发过程中,数据库的bigint,Java的Long都是比较常用的数据类型,为了避免精度丢失,针对这种比较大的数值全局配置,将数值类型转换为文本如果需要将所有的数值类......
  • SNN_文献阅读_Effective and Efficient Computation with Multiple-timescaleSpiking
    AdaptiveSRNN基于多时间尺度脉冲循环神经网络的高效计算(SRNN)中心思想:使用替代梯度进行训练,克服SNN中梯度不连续的问题。在PyTorch中直接使用BPTT进行训练。结构本文......
  • go json.Marshal 和 json.Unmarshal与结构体
    结构体属性名字小写会被忽略packagemainimport("encoding/json""fmt")typePeoplestruct{namestring`json:"name"`Heightstring`jso......
  • IPFS安装笔记
    IPFS安装笔记1.创建ipfs目录,并进入目录中cd/homemkdiripfscdipfs/2.下载go-ipfs_v0.6.0_linux-amd64.tar.gz进入https://github.com/ipfs/go-ipfs/releases下......
  • MyEclipse技术全面解析——Spring IDE,改变应用程序研发
    通过MyEclipse SpringIDE,您可以获得从内置库到bean开发工具的Spring框架开发所需的所有东西,甚至还可以获得用于启动Spring项目的Springscaffolding。但Spring只是其中的......
  • Eclipse插件开发MavenArchetype
    介绍用过Maven的童鞋,可能会听说过archetype(骨架)。而在Eclipse中利用m2e插件提供的骨架来新建Maven工程的话,是需要手动来配置的。而如果每次手动添加骨架会很麻烦,如果能像Ecl......
  • Eclipse插件开发XmlCatalog
    介绍扩展点org.eclipse.wst.xml.core.catalogContributions​......
  • 1. [2001年NOIP提高组] 一元三次方程求解
    1.[2001年NOIP提高组]一元三次方程求解思路:暴力枚举法在根的范围里从小到大枚举x的范围(因为x要精确到小数点后2位,所以我们枚举的时候就直接精确到后三位)若存在两个数x......
  • 2. [2001年NOIP提高组] 数的划分
    2.[2001年NOIP提高组]数的划分将整数n分成k份,且每份不能为空,任意两份不能相同(不考虑顺序)。例如:n=7,k=3,下面三种分法被认为是相同的。1,1,5;1,5,1;5,1,1;问有多少种不同的分......