发表于: 2019-08-19 23:19:35
1 730
今天完成的事:任务5深度思考
JavaScript正则表达式
1、正则表达式简介
正则表达式使用单个字符串来描述、匹配符合某个句法规则的字符串搜索模式,正则表达式常用于文本搜索和文本替换。
2、正则表达式字符
- 修饰符
i | g | m |
不区分大小写 | 全局匹配 | 多行匹配 |
- 括号
[abc] | [^abc] | [a-z] | (red/blue/yellow) |
查找中括号内的任意字符 | 查找括号外的任意字符 | 查找a-z之间的字符 | 查找括号内的单词 |
- 元字符
\d | \s | \b | $ | \n | \r | \uxxxx |
查找数字 | 查找空白字符 | 匹配单词边界 | 匹配单词末端 | 查找换行符 | 查找回车符 | 查找十六进制 |
- 方法
正则表达式方法 | |
RegExpObject.exec(string) | 搜索字符串中匹配的字符,并返回该字串 |
RegExpObject.test(string) | 搜索字符串中指定的值,返回布尔值 |
RegExpObject.lastIndex | 返回相匹配字符串的末尾位置,用于下次匹配的起始位置 |
字符串方法 | |
stringObject.search(regexp) | 返回相匹配字符串的起始位置,没找到返回-1 |
stringObject.match(regexp) | 搜索字符串中匹配的字符,并返回该字串 |
stringObject.replace(regexp,替换) | 替换字符串中匹配的字符 |
stringObject.split("分隔符",“长度可选”) | 把一个字符串分割成字符串组 |
REAT风格
1、REST概念
REST即Representational State Transfer的缩写,可译为"表现层状态转化”。
REST最大的几个特点为:资源、统一接口、URI和无状态。
REST是一种标准规范,让请求更有语义化,遵循REST风格可以使开发的接口通用,便于调用者理解接口的作用
- HTTP请求,设定了八种方法
- OPTIONS 返回服务器所支持的请求方法
- GET 向服务器获取指定资源
- HEAD 与GET一致,只不过响应体不返回,只返回响应头
- POST 向服务器提交数据,数据放在请求体里
- PUT 与POST相似,只是具有幂等特性,一般用于更新
- DELETE 删除服务器指定资源
- TRACE 回显服务器端收到的请求,测试的时候会用到这个
- CONNECT 预留,暂无使用
2、post和get的区别
GET | POST | |
后退按钮/刷新 | 无害 | 数据会被重新提交(浏览器应该告知用户数据会被重新提交)。 |
书签 | 可收藏为书签 | 不可收藏为书签 |
缓存 | 能被缓存 | 不能缓存 |
编码类型 | application/x-www-form-urlencoded | application/x-www-form-urlencoded 或 multipart/form-data。为二进制数据使用多重编码。 |
历史 | 参数保留在浏览器历史中。 | 参数不会保存在浏览器历史中。 |
对数据长度的限制 | 是的。当发送数据时,GET 方法向 URL 添加数据;URL 的长度是受限制的(URL 的最大长度是 2048 个字符)。 | 无限制。 |
对数据类型的限制 | 只允许 ASCII 字符。 | 没有限制。也允许二进制数据。 |
安全性 | 与 POST 相比,GET 的安全性较差,因为所发送的数据是 URL 的一部分。 在发送密码或其他敏感信息时绝不要使用 GET ! | POST 比 GET 更安全,因为参数不会被保存在浏览器历史或 web 服务器日志中。 |
可见性 | 数据在 URL 中对所有人都是可见的。 | 数据不会显示在 URL 中。 |
hosts
1、什么是hosts
Hosts文件主要作用是定义IP地址和主机名的映射关系,是映射IP地址和主机名的规定。当用户在浏览器中输入需要访问的网址时,系统会首先自动从Hosts文件中寻找对应的IP地址,一旦找到,浏览器会立即打开对应网页,如果没有找到,则浏览器会将网址提交DNS服务器进行IP地址解析。
2、localhost 与127.0.0.1的区别
localhost也叫local是本地服务器
127.0.0.1是本地地址
他们的解析通过本机的host文件,windows自动将localhost解析为127.0.0.1
localhot(local)是不经网卡传输!这点很重要,它不受网络防火墙和网卡相关的的限制。
127.0.0.1是通过网卡传输,依赖网卡,并受到网络防火墙和网卡相关的限制。
一般设置程序时本地服务用localhost是最好的,localhost不会解析成ip,也不会占用网卡、网络资源。
有时候用localhost可以,但用127.0.0.1就不可以的情况就是在于此。猜想localhost访问时,系统带的本机当前用户的权限去访问,而用ip的时候,等于本机是通过网络再去访问本机,可能涉及到网络用户的权限。
前端常见跨域解决方案
1、什么是跨域
- 广义的跨域
广义的跨域是指一个域下的文档或脚本试图去请求另一个域下的资源
- 资源跳转:A链接、重定向、表单提交
- 资源嵌入:<link>、<script>、<img>、<frame>等dom标签。还有样式中的background:url()、@font-face()等文件外链
- 脚本请求:Js发起AJAX请求、DOM和JS对象的跨域操作等
- 狭义的跨域
我们通常所说的跨域是狭义的,是由浏览器同源策略限制的一类请求场景
2、什么是同源策略
同源策略/SOP(Same origin policy)是一种约定,由网景1995年引入浏览器,它是浏览器最核心最基本的安全功能,如果缺少同源策略,浏览器很容易受到XSS/CSFR等攻击、所谓的同源是指“协议+域名+端口”三者相同,即便两个不同的域名指向同一个ip地址,也非同源。
- 同源策略限制以下几种行为
- Cookie、LocalStorage 和 IndexDB 无法读取
- DOM 和 Js对象无法获得
- AJAX 请求不能发送
- 常见的跨域场景
3、常用解决方案
1、 通过jsonp跨域
2、 document.domain + iframe跨域
3、 location.hash + iframe
4、 window.name + iframe跨域
5、 postMessage跨域
6、 跨域资源共享(CORS)
7、 nginx代理跨域
8、 nodejs中间件代理跨域
9、 WebSocket协议跨域
明天计划的事情:开始vue
遇到的问题:面向对象的原型原型链继承还没吸收,边学边吸收吧,换换脑子
收获:基础知识点的补充
评论