Richard-zhang-iOS的博客


  • 首页

  • 归档

  • 分类

  • 标签

  • 关于

前端跨域方案总结

发表于 2018-08-21 | 分类于 Javascript

本文主要解决一下几个问题

  • 什么是跨域?
  • 常见跨域场景有哪些
  • 常见跨域解决方案及各自的使用场景

什么是跨域?

跨域是指一个域下的文档或脚本试图去请求另一个域下的资源,这里跨域是广义的。

广义的跨域:

1
2
3
1.) 资源跳转: A链接、重定向、表单提交
2.) 资源嵌入: <link>、<script>、<img>、<frame>等dom标签,还有样式中background:url()、@font-face()等文件外链
3.) 脚本请求: js发起的ajax请求、dom和js对象的跨域操作等

其实我们通常所说的跨域是狭义的,是由浏览器同源策略限制的一类请求场景。

什么是同源策略?
同源策略/SOP(Same origin policy)是一种约定,由Netscape公司1995年引入浏览器,它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,浏览器很容易受到XSS、CSFR等攻击。所谓同源是指”协议+域名+端口”三者相同,即便两个不同的域名指向同一个ip地址,也非同源。

同源策略限制以下几种行为:

1
2
3
1.) Cookie、LocalStorage 和 IndexDB 无法读取
2.) DOM 和 Js对象无法获得
3.) AJAX 请求不能发送
阅读全文 »

网络安全之HTTPS

发表于 2018-08-19 | 分类于 Network

本文为了解决以下问题:

  • HTTP 简介
  • HTTPS涉及的加密方式有哪些
  • 数字证书是什么
  • HTTPS通讯过程
  • 中间人攻击
  • 总结
阅读全文 »

Javascript原型总结

发表于 2018-08-15 | 分类于 Javascript

Javascript原型

本文为了解决以下问题:

  • Javascript中的对象
  • 原型中所涉及的概念(__proto__,prototype,constructor)
  • 构造函数原型链
  • 完整对象59
  • 原型链
  • 数组原型链
  • 总结
阅读全文 »

iOS Runtime 复习整理

发表于 2018-07-27 | 分类于 iOS

Runtime复习整理

Runtime 是一个用 C 语言和编译语言写的API,称为“运行时”,它的应用使 Objective-C 拥有相当多的动态特性。具体怎么实现的呢。我们从下面几个方面探寻 Runtime 的实现机制。

  • Runtime 介绍
  • Runtime 交互方式
  • Runtime 常用术语的数据结构
  • Runtime 消息传递
  • Runtime 消息转发
  • Runtime 应用
阅读全文 »

JavaScriptCore C 语言接口详解

发表于 2018-07-02 | 分类于 iOS

JavaScriptCore介绍

JavaScriptCore 是 JavaScript 引擎,通常会被叫做虚拟机,专门设计来解释和执行 JavaScript 代码,可以理解为一个浏览器的运行内核。

JavaScriptCore Framework 是 iOS7 引入的新功能,其实就是基于 Webkit 中以 C/C++ 实现的 JavaScriptCore 的一个封装,大多数 iOS 比较熟悉的是它的 Objective-C API,可以用简洁的方式实现 JS 与Native 交互,其实它还有C API的部分,虽然也是开源的,但是在查看源代码时只有较少的介绍,而且我们知道 Objective-C API 只是 C API 接口的封装。本文主要介绍 C API 部分,帮助大家更好理解 JavaScriptCore Framework。

阅读全文 »
123
Richard-zhang-iOS

Richard-zhang-iOS

25 日志
5 分类
18 标签
GitHub E-Mail
© 2017 — 2019 Richard-zhang-iOS
由 Hexo 强力驱动
|
主题 — NexT.Pisces v5.1.4