HTTP

1、说说你对http的理解

1)首先用户端与服务器需要建立连接。

2)建立连接后,用户端发送一个请求给服务器

3)服务器接到请求后,给予相应的响应信息,

4)用户端接收服务器所返回的信息通过浏览器显示在用户的显示屏上,然后用户端与服务器断开连接。

HTTP是一个应用层协议,由请求和响应构成,是一个标准的客户端服务器模型。HTTP是一个无状态的协议

2、说说HTTPS和HTTP的区别

  1、https协议需要到ca申请证书,一般免费证书较少,因而需要一定费用。

  2、http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议。

  3、http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。

  4、http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。

HTTP的请求:

HTTP请求方法

根据HTTP标准,HTTP请求可以使用多种请求方法。

HTTP1.0定义了三种请求方法: GET, POST 和 HEAD方法。

HTTP1.1新增了五种请求方法:OPTIONS, PUT, DELETE, TRACE 和 CONNECT 方法。

GET    请求指定的页面信息,并返回实体主体。

HEAD    类似于get请求,只不过返回的响应中没有具体的内容,用于获取报头

POST    向指定资源提交数据进行处理请求。POST请求可能会导致新的资源的建立和/或已有资源的修改。

PUT    从客户端向服务器传送的数据取代指定的文档的内容。

DELETE      请求服务器删除指定的页面。

CONNECT    HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器。

OPTIONS    允许客户端查看服务器的性能。

TRACE    回显服务器收到的请求,主要用于测试或诊断。

响应:

HTTP之状态码

状态代码有三位数字组成,第一个数字定义了响应的类别,共分五种类别:

1xx:指示信息--表示请求已接收,继续处理

2xx:成功--表示请求已被成功接收、理解、接受

3xx:重定向--要完成请求必须进行更进一步的操作

4xx:客户端错误--请求有语法错误或请求无法实现

5xx:服务器端错误--服务器未能实现合法的请求

常见状态码:

200 OK                        //客户端请求成功

301  Moved Permanently  //永久移动。请求的资源已被永久的移动到新URI,返回信息会包括新的URI,浏览器会自动定向到新URI。今后任何新的请求都应使用新的URI代替

302  Found                      // 临时移动。与301类似。但资源只是临时被移动。客户端应继续使用原有URI 303  See Other                //查看其它地址。与301类似。使用GET和POST请求查看          304  Not Modified        //未修改。所请求的资源未修改,服务器返回此状态码时,不会返回任何资源。客户端通常缓存访问过的资源,通过提供一个头信息指出客户端希望只返回在指定日期之后修改的资源 305  Use Proxy                //使用代理。所请求的资源必须通过代理访问                     

400 Bad Request              //客户端请求有语法错误,不能被服务器所理解

401 Unauthorized              //请求未经授权,这个状态代码必须和WWW-Authenticate报头域一起使用

403 Forbidden                  //服务器收到请求,但是拒绝提供服务

404 Not Found                //请求资源不存在,eg:输入了错误的URL

500 Internal Server Error    //服务器发生不可预期的错误

一个页面从url敲如地址到页面显示的全过程

1、浏览器地址栏输入url

2、浏览器会先查看浏览器缓存--系统缓存--路由缓存,如有存在缓存,就直接显示。如果没有,接着第三步

3、域名解析(DNS)获取相应的ip

4、浏览器向服务器发起tcp连接,与浏览器建立tcp三次握手

5、握手成功,浏览器向服务器发送http请求,请求数据包

6、服务器请求数据,将数据返回到浏览器

7、浏览器接收响应,读取页面内容,解析html源码,生成DOm树

8、解析css样式、浏览器渲染,js交互

9、请求页面中需要的js脚本和图片或者样式表

前端的安全CSRF,XSS,sql注入

CSRF

CSRF概念:CSRF跨站请求伪造(Cross—Site Request Forgery),存在巨大的危害性,你可以这样来理解:​      攻击者盗用了你的身份,以你的名义发送恶意请求,对服务器来说这个请求是完全合法的,但是却完成了攻击者所期望的一个操作,比如以你的名义发送邮件、发消息,盗取你的账号,添加系统管理员,甚至于购买商品、虚拟货币转账等。 如下:其中Web A为存在CSRF漏洞的网站,Web B为攻击者构建的恶意网站,User C为Web A网站的合法用户。

CSRF攻击攻击原理及过程如下:

用户C打开浏览器,访问受信任网站A,输入用户名和密码请求登录网站A;

在用户信息通过验证后,网站A产生Cookie信息并返回给浏览器,此时用户登录网站A成功,可以正常发送请求到网站A;

用户未退出网站A之前,在同一浏览器中,打开一个TAB页访问网站B;

网站B接收到用户请求后,返回一些攻击性代码,并发出一个请求要求访问第三方站点A;

浏览器在接收到这些攻击性代码后,根据网站B的请求,在用户不知情的情况下携带Cookie信息,向网站A发出请求。网站A并不知道该请求其实是由B发起的,所以会根据用户C的Cookie信息以C的权限处理该请求,导致来自网站B的恶意代码被执行。       

防御CSRF攻击:

      目前防御 CSRF 攻击主要有2种策略:验证 HTTP 请求的Referer 字段;在请求地址中添加 token 并验证

XSS

XSS, 即为(Cross Site Scripting), 中文名为跨站脚本, 是发生在目标用户的浏览器层面上的,当渲染DOM树的过程成发生了不在预期内XSS(Cross Site Scripting),跨站脚本攻击,是一种允许攻击者在另外一个用户的浏览器中执行恶意代码脚本的脚本注入式攻击。本来缩小应该是CSS,但为了和层叠样式(Cascading Style Sheet,CSS)有所区分,故称XSS执行的JS代码时,就发生了XSS攻击。

1、持续型XSS攻击:恶意脚本来源于网站的数据库

1、攻击者通过评论表单提交将<script\>alert(‘aaa’)</script\>提交到网站

2、网站后端对提交的评论数据不做任何操作,直接存储到数据库中

3、其他用户访问正常访问网站,并且需要请求网站的评论数据

4、网站后端会从数据库中取出数据,直接返回给用户

5、用户得到页面后,直接运行攻击者提交的代码<script>alert(‘aaa’)</script>`,所有用户都会在网页中弹出aaa的弹窗

2、反射型XSS攻击:恶意脚本来源于受害者的请求

在一个反射型XSS攻击中,恶意文本属于受害者发送给网站的请求中的一部分。随后网站又把恶意文本包含进用于响应用户的返回页面中,发还给用户。

1、用户误点开了带攻击的url :http://xxx?keyword=<script\>alert('aaa')</script\>

2、网站给受害者的返回中包含了来自URL的的恶意文本

3、用户的浏览器收到文本后执行页面,会在网页中弹窗aaa

3、基于DOM的XSS攻击

基于DOM的XSS攻击是反射型攻击的变种。服务器返回的页面是正常的,只是我们在页面执行js的过程中,会把攻击代码植入到页面中

1、用户误点开了带攻击的url :http://xxx?name=<script\>alert('aaa')</script\>

2、网站给受害者的返回中正常的网页

3、用户的浏览器收到文本后执行页面合法脚本,这时候页面恶意脚本会被执行,会在网页中弹窗aaa

如何防止攻击

XSS攻击其实就是代码的注入。用户的输入被编译成恶意的程序代码。所以,为了防范这一类代码的注入,需要确保用户输入的安全性。对于攻击验证,我们可以采用以下两种措施:

1、编码,就是转义用户的输入,把用户的输入解读为数据而不是代码

2、校验,对用户的输入及请求都进行过滤检查,如对特殊字符进行过滤,设置输入域的匹配规则等

SQL注入

SQL注入就是一种通过操作输入来修改后台SQL语句达到代码执行进行攻击目的的技术。

cookie、sessionStorage、localStorage的区别

1、cookie数据始终在同源的http请求中携带(即使不需要),即cookie在浏览器和服务器间来回传递,而 sessionStorage和localStorage不会自动把数据发送给服务器,仅在本地保存。

2、存储大小限制也不同,cookie数据不能超过4K,同时因为每次http请求都会携带cookie、所以cookie 只适合保存很小的数据。sessionStorage和localStorage虽然也有存储大小的限制,但比 cookie大得多,可以达到5M或更大

3、数据有效期不同,sessionStorage仅仅在当前浏览器窗口关闭之前有效;localStorage始终有效,窗口或 者浏览器关闭之后也一直保存,因此作用持久数据;cookie,只在设置cookie过期时间之前有效,即使窗口关闭或者浏览器关闭。

Ajax 是什么,ajax请求方式有几种

是异步JavaScript和XML技术, 可以在不必刷新页面的情况下发送以及接收各种格式的信息;一种创建交互 式网页应用的网页开发技术

跨域

1、jsonp跨域(优点:简单方便,缺点:只能使用get请求,不支持post请求)11

2、nginx的反向代理(少用)  apach  tomact 

3、window.name(少用)

4、axios反向代理,

5、cors(跨域资源共享)修改服务器端修改包的头部信息,

6、iframe跨子域(不常用)

VUE项目中怎么跨域

使用http-proxy-middleware 代理解决(项目使用vue-cli脚手架搭建)

例如请求的url:“http://aa.com/demo.json“

1、打开config/index.js,在proxyTable中添写如下代码:

proxyTable: {

'/api': {//使用"/api"来代替"http://aa.com"

target:'http://aa.com',//源地址

changeOrigin:true,//改变源

secure:false// 是否使用https

pathRewrite: {

'^/api':'/api'//路径重写

     }

  }

}

2、使用axios请求数据时直接使用“/api”

getData() {

axios.get('/api/demo.json',function(res) {

console.log(res)

})

以上配置只是在开发环境(dev)中解决跨域。要解决生产环境的跨域问题,则在config/dev.env.js和config/prod.env.js里也就是开发/生产环境下分别配置一下请求的地址API_HOST,开发环境中我们用上面配置的代理地址api,生产环境下用正常的接口地址

module.exports=merge(prodEnv, {

    NODE_ENV:'"development"',

    API_HOST:"/api/"

})

'use strict'

module.exports={

    NODE_ENV:'"production"',

    API_HOST:"http://aa.com"

}

前后端数据交互安全

加密:

hash加密:md5  sha256

对称加密:  AES ,DES

非对称加密:生成一对钥匙,公钥,私钥。 公钥是由私钥生成的

无限上拉加载

下拉刷新

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,271评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,275评论 2 380
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,151评论 0 336
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,550评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,553评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,559评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,924评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,580评论 0 257
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,826评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,578评论 2 320
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,661评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,363评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,940评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,926评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,156评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,872评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,391评论 2 342

推荐阅读更多精彩内容