爬虫学习6

JSON(JavaScript Object Notation)和JSONP(JSON with Padding)是两个不同的概念,它们的主要区别在于用途和实现方式:

JSON(JavaScript Object Notation)

  1. **定义:** JSON是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。它基于JavaScript的一个子集,但是独立于语言,可以被多种编程语言解析。

  2. **用途:** JSON用于在网络中传输数据,特别是在Web开发中,用于客户端和服务器之间的数据交换。

  3. **格式:** JSON数据格式类似于JavaScript对象字面量,但是更加严格,例如属性名必须用双引号括起来。

  4. **示例:**

javascript 复制代码
   {
       "name": "John",
       "age": 30,
       "city": "New York"
   }
  1. **解析:** 可以在多种编程语言中解析JSON,通常有专门的库或内置函数来处理JSON数据。

JSONP(JSON with Padding)

  1. **定义:** JSONP是一种跨域数据请求的解决方案,它通过动态创建`<script>`标签来绕过浏览器的同源策略限制。

  2. **用途:** JSONP主要用于在不支持CORS(跨源资源共享)的旧版浏览器中,从不同源的服务器获取数据。

  3. **格式:** JSONP数据格式在JSON的基础上,通过一个回调函数名进行"填充",使其成为一段可执行的JavaScript代码。

  4. **示例:**

javascript 复制代码
   myCallbackFunction({
       "name": "John",
       "age": 30,
       "city": "New York"
   });

在这个例子中,`myCallbackFunction`是客户端定义的回调函数,服务器响应时会将JSON数据包装在这个函数调用中。

  1. **解析:** JSONP不需要解析,因为它通过JavaScript执行回调函数来传递数据,而JSON需要在客户端使用JSON解析函数(如`JSON.parse()`)来解析成对象。

主要区别

  • **安全性:** JSONP存在安全风险,因为它允许执行来自远程服务器的任意JavaScript代码,而JSON通常被认为是安全的。

  • **跨域能力:** JSONP允许跨域请求,而标准的JSON请求(如通过AJAX)受到同源策略的限制。

  • **HTTP方法:** JSONP通常只支持GET请求,而JSON可以通过AJAX、Fetch API等支持多种HTTP方法(GET、POST、PUT等)。

  • **现代替代:** 随着CORS和WebSockets等技术的发展,JSONP的使用越来越少,因为它存在安全问题和功能限制。

总的来说,JSON是一种数据格式,而JSONP是一种利用JSON实现跨域请求的技术。随着现代Web技术的发展,JSONP逐渐被更安全、更灵活的技术所取代。

相关推荐
想做后端的小C2 小时前
爬虫 crawler 入门爬取不设防网页 并实现无限增生
爬虫
守城小轩7 小时前
如何解决Cloudflare JS挑战以进行网页抓取和自动化
chrome·爬虫·自动化·网络爬虫·浏览器开发·浏览器爬虫
魂万劫7 小时前
基于百度翻译的python爬虫示例
开发语言·爬虫·python·百度翻译
小爬虫程序猿18 小时前
如何设置爬虫的延时避免被封禁
爬虫
PXM的算法星球1 天前
Java爬虫抓取B站视频信息
java·windows·爬虫
电脑玩家粉色男孩1 天前
爬虫(requsets)笔记
笔记·爬虫·python
小爬虫程序猿1 天前
爬虫代码中需要设置哪些HTTP头部信息?
爬虫·网络协议·http
鹿邑网爬1 天前
京东商品评论图片爬虫教程:轻松下载用户晒单图
后端·爬虫·python
shix .2 天前
王者荣耀道具页面爬虫(json格式数据)
数据库·爬虫·json
疯狂成瘾者2 天前
python爬虫笔记(一)
笔记·爬虫·python