web知识(六)
一.HTTP METHOD
	GET方法请求一个指定资源的表示形式. 使用GET的请求应该只被用于获取数据.
	HEAD方法请求一个与GET请求的响应相同的响应,但没有响应体.
	POST方法用于将实体提交到指定的资源,通常导致在服务器上的状态变化或副作用.
	PUT方法用请求有效载荷替换目标资源的所有当前表示。
	DELETE方法删除指定的资源。
	CONNECT方法建立一个到由目标资源标识的服务器的隧道。
	OPTIONS方法用于描述目标资源的通信选项。
	TRACE方法沿着到目标资源的路径执行一个消息环回测试。
	PATCH方法用于对资源应用部分修改。
二.HTTP 请求/响应报文结构
	请求报文和响应报文都是由以下4部分组成:
	  1.请求行/响应行
	  2.请求头/响应头
	  3.空行
	  4.消息主体(请求体/响应体)
	1)请求报文:
  1.请求行:格式为:Method Request-URI HTTP-Version 结尾符
  2.请求头:
  a.通用头
  date、connection、cache-control等信息
  b.请求头
  请求报头通知服务器【关于客户端请求的信息】:
  Host、User-Agent(浏览器类型、操作系统等信息)
  Accept:客户端可识别的内容类型列表,用于指定客户端接收那些类型的信息
  Accept-Encoding:客户端可识别的数据编码
  Accept-Language:表示浏览器所支持的语言类型
  Connection:允许客户端和服务器指定与请求/响应连接有关的选项,例如这是为Keep-Alive则表示保持连接。
  Transfer-Encoding:告知接收端为了保证报文的可靠传输,对报文采用了什么编码方式。
  c.实体头
  实体报头用来定义被传送资源的信息。请求和响应消息都可以传送一个实体,常见的实体报头为:
  Content-Type:发送给接收者的实体正文的媒体类型。常见的content-type类型如下:
	     (text/html : HTML格式、text/plain :纯文本格式、multipart/form-data、application/json: JSON数据格式等)
  参考链接:https://www.runoob.com/http/http-content-type.html
  Content-Lenght:实体正文的长度
  Content-Language:描述资源所用的自然语言,没有设置则该选项则认为实体内容将提供给所有的语言阅读
  Content-Encoding:实体报头被用作媒体类型的修饰符
  它的值指示了已经被应用到实体正文的附加内容的编码,因而要获得Content-Type报头域中所引用的媒体类型,必须采用相应的解码机制。
  Last-Modified:实体报头用于指示资源的最后修改日期和时间
  Expires:实体报头给出响应过期的日期和时间
  3.空行:http协议规定的格式,一般采用
  4.消息主体
  一般用于http的post方法,通过实体报头Content-Type规定消息主体的格式内容。
	2)响应报文:
  1.响应行
  响应行一般【由协议版本、状态码及其描述组成 】比如 HTTP/1.1 200 OK
  2.响应头:
	   【用于服务器传递自身信息的响应】,常见的响应报头:
  Allow:服务器支持哪些请求方法(如GET、POST等)。
  Location:用于重定向接受者到一个新的位置,常用在更换域名的时候
  Server:包含可服务器用来处理请求的系统信息,与User-Agent请求报头是相对应的
  Transfer-Encoding:告诉浏览器数据的传送格式。
  Refresh:告诉浏览器隔多久刷新一次,以秒计。
  Set-Cookie:设置和页面关联的Cookie。
  Access-Control-Allow-Origin:指定哪些站点可以参与跨站资源共享。
  Age:对象在代理缓存中暂存的秒数。
  3.空行
  4.消息主体
三.常见的HTTP状态码
	 200 - 请求成功
	 204 - 服务器处理成功,但为返回内容
	 301 - 资源(网页等)被永久转移到其它URL
	 304 - 资源未修改,不返回任何资源,一般和缓存有关
	 404 - 请求的资源(网页等)不存在
	 500 - 内部服务器错误
	 HTTP状态码由三个十进制数字组成,第一个十进制数字定义了状态码的类型,HTTP状态码共分为5种类型:
	  ①1** 信息,服务器收到请求,需要请求者继续执行操作;
	  ②2** 成功,操作被成功接收并处理;
	  ③3** 重定向,需要进一步的操作以完成请求;
	  ④4** 客户端错误,请求包含语法错误或无法完成请求;
	  ⑤5** 服务器错误,服务器在处理请求的过程中发生了错误。
四.网站的安全防护
	  【预防XXS CSRF SQL注入攻击 DDOS攻击】。
	  1.【XXS】:参考链接:https://www.jianshu.com/p/42173ea05ae4
	   XSS又叫CSS (Cross Site Script) ,跨站脚本攻击。
	   它指是恶意攻击者往Web页面里插入恶意html代码。
	   当用户浏览该页时,嵌入Web里面的html代码会被执行,从而达到恶意用户的特殊目的。
	   【防御方式:关键的cookie 设置为httpOnly、输入检查、特殊字符<>/&.进行转移存储。】
	  2.【CSRF】:参考链接:
	   CSRF攻击的全称是跨站请求伪造( cross site request forgery)
	   CSRF攻击:攻击者盗用了你的身份,以你的名义向第三方网站发送恶意请求。 
	   CRSF能做的事情包括利用你的身份发邮件、发短信、进行交易转账等,甚至盗取你的账号。
	   防御方式:
	     1、尽量使用POST,限制GET
	     2、将cookie设置为HttpOnly
	     3、请求增加token
	     4、通过Referer识别
	     5、使用验证码等
	  3.【sql注入】
	   通过参数化查询、词法分析等
	  4.【DDOS】: 参考链接:https://www.jianshu.com/p/e7a5fdc67b8f
	   全称Distributed Denial of Service.
	   中文意思为“分布式拒绝服务”,就是利用大量合法的分布式服务器对目标发送请求,从而导致正常合法用户无法获得服务
	   资源消耗类攻击服务消耗性攻击等导致:系统应用:阻塞和耗尽
	   防御方式:
	    1.资源隔离:通过对数据源的认证,过滤伪造源数据包或发功攻击的攻击,保护服务端不受恶意连接的侵蚀。
	    2.用户规则
	    3.大数据智能分析:
	     黑客为了构造大量的数据流,往往需要通过特定的工具来构造请求数据,这些数据包不具有正常用户的一些行为和特征。
	     为了对抗这种攻击,可以基于对海量数据进行分析,进而对合法用户进行模型化,并利用这些指纹特征,
	     如:Http模型特征、数据来源、请求源等,有效地对请求源进行白名单过滤,从而实现对DDoS流量的精确清洗。
	    4.资源对抗:即通过大量服务器和带宽资源的堆砌达到从容应对DDoS流量的效果
五.前端工程化理解
	 1.开发规范
	 2.模块化开发
	 3.组件化开发
	 4.性能优化
	 5.项目部署
	 6.开发工具
六.AMD、CMD、CommonJs、ES6的对比
	 1)AMD-【异步模块定义】
	 AMD是RequireJS在推广过程中对模块定义的规范化产出,它是一个概念,RequireJS是对这个概念的实现。
	 RequireJS:是一个AMD框架
	 2)CMD---是SeaJS在推广过程中对模块定义的规范化产出,是一个【同步模块定义】,是SeaJS的一个标准,
	 SeaJS是CMD概念的一个实现,SeaJS是淘宝团队提供的一个模块开发的js框架.
	 3)CommonJS规范---是通【过module.exports定义】的,在前端浏览器里面并不支持module.exports,通过node.js后端使用的。
	 Nodejs端是使用CommonJS规范的,前端浏览器一般使用AMD、CMD、ES6等定义模块化开发的
	 4)ES6特性,模块化---export/import对模块进行导出导入的
七.MVC、MVVM
	 1.MVC是Model-View- Controller的简写。即模型-视图-控制器。
	 2.MVVM即Model-View-ViewModel的简写。即模型-视图-视图模型。
	  数据绑定。DOM 事件监听。
八.样式布局和BFC
	 1.BFC 全称为 块格式化上下文 (Block Formatting Context) 是formaating context中的布局格式。
	  【BFC布局就是被标识为BFC的页面独立容器,容器里面的子元素不会影响到外面的元素。反之也如此。】
	  包括浮动,和外边距合并等等,因此,有了这个特性,我们布局的时候就不会出现意外情况了。
	 2.Formatting context 是 W3C CSS2.1 规范中的一个概念。
	   【它是页面中的一块渲染区域,并且有一套渲染规则,它决定了其子元素将如何定位,以及和其他元素的关系和相互作用。】
	   最常见的 Formatting context 有 Block fomatting context (简称BFC)和 Inline formatting context (简称IFC)。
	 3.【Box:css布局的基本单位】:盒子的类型 block-level box、inline-level box、run-in box
	 4.BFC布局规则:
	   内部的Box会在垂直方向,一个接一个地放置。
	   Box垂直方向的距离由margin决定。属于同一个BFC的两个相邻Box的margin会发生重叠。
	   每个盒子(块盒与行盒)的margin box的左边,与包含块border box的左边相接触(对于从左往右的格式化,否则相反)。即使存在浮动也是如此。
	   BFC的区域不会与float box重叠。
	   BFC就是页面上的一个隔离的独立容器,容器里面的子元素不会影响到外面的元素。反之也如此。
	   计算BFC的高度时,浮动元素也参与计算。
	 5.让元素如何使用BFC布局:
 1、float的值不是none。
 2、position的值不是static或者relative。
 3、display的值是inline-block、table-cell、flex、table-caption或者inline-flex
 4、overflow的值不是visible
	 6.BFC的作用
 1、利用BFC避免margin重叠。
 2、自适应两栏布局
 3、清除浮动
	   参考链接:https://blog.csdn.net/sinat_36422236/article/details/88763187
九.网页如何支持多语言?
	 1.采用统一编码UTF-8方式编码
	 1- 应用字符集的选择;所以对提供了多语言版本的网站来说,Unicode字符集应该是最理想的选择。
	 2- 语言书写习惯&导航结构 ;
	 3- 数据库驱动型网站 ;
	 4- 语言、编码、等系统级设置。
十.学习一门新语言
	 1.历史、背景、用途、特点、现状、发展
	 2.搭建开发环境,编写helloWord
	 3.学习语言基本知识
	 4.第三方库、组件、框架
	 5.项目开发
十一.HASH表、sql语句的分类、静态网页和动态网页区别?
	 1.散列表(Hash table,也叫哈希表),是根据关键码值(Key value)而直接进行访问的数据结构。
	 2.sql语句的分类:DDL数据定义语句 DCL数据控制语句 DML操作语句 DQL 查询语句
	 3.静态:任何时间任何人访问无变化。动态:不同时间不同人,访问页面不一样。
十二.页面布局类型?(参考链接:https://www.cnblogs.com/yanayana/p/7066948.html)
	 1.静态布局(Static Layout)
	   即传统Web设计,网页上的所有元素的尺寸一律使用px作为单位。
	 2.流式布局(Liquid Layout)
	   流式布局(Liquid)的特点(也叫"Fluid") 是页面元素的宽度按照屏幕分辨率进行适配调整,但整体布局不变。
	   代表作栅栏系统(网格系统)。
	 3.自适应布局(Adaptive Layout)
	   自适应布局的特点是分别为不同的屏幕分辨率定义布局,即创建多个静态布局,每个静态布局对应一个屏幕分辨率范围。
	 4.响应式布局(Responsive Layout)
	   随着CSS3出现了媒体查询技术@media,又出现了响应式设计的概念。
	   响应式设计的目标是确保一个页面在所有终端上(各种尺寸的PC、手机、手表、冰箱的Web浏览器等等)都能显示出令人满意的效果。
	   对CSS编写者而言,在实现上不拘泥于具体手法,但通常是糅合了流式布局+弹性布局,再搭配媒体查询技术使用。
	   ——分别为不同的屏幕分辨率定义布局,同时,在每个布局中,应用流式布局的理念,即页面元素宽度随着窗口调整而自动适配。
	   即:【创建多个流体式布局,分别对应一个屏幕分辨率范围。可以把响应式布局看作是流式布局和自适应布局设计理念的融合。】
	   【响应式几乎已经成为优秀页面布局的标准。】
@media only screen and (max-width: 800px) { .gridmenu { width:80%; } .gridmain { width:70%; } .gridright { width:60%; } }
 5.弹性布局(rem/em布局)
	  弹性布局(flex container),页面中任何一个元素只要设置了display:flex属性,那么当前盒子都称为弹性盒子。
	  弹性盒子默认有两条轴: 默认水平显示的主轴 和 始终要垂直于主轴的侧轴(也叫交叉轴),在弹性盒子中所有的子元素都是沿着主轴方向显示。
十三.H5新特性和CSS3新特性?
	 H5的新特性:
	   1. 用于绘画 canvas 元素。
	   2. 用于媒介回放的 video 和 audio 元素。
	   3. 本地离线存储 localStorage 长期存储数据,浏览器关闭后数据不丢失;sessionStorage 的数据在浏览器关闭后自动删除。
	   4. 语意化更好的内容元素,比如 article、footer、header、nav、section。
	   5. 表单控件,calendar、date、time、email、url、search。
	 css3的新特征:
	   1.选择器。
	   2.和透明度。
	   3. 多栏布局。
	   4. 多背景图。
	   5.Word Wrap。
	   6. 文字阴影。
	   7.@font-face属性。
	   8.圆角(边框半径)。
	   9.边框图片。
	   10.盒阴影。
	   11. 盒子大小。
	   12. 媒体查询。
	   13.语音。
十四.什么是typeScript?
	 TypeScript是一种由微软开发的开源、跨平台的编程语言。它是JavaScript的超集,最终会被编译为JavaScript代码。
十五.三大框架区别?
| Angular | React | Vue | |
| 组织方式 | MVC | 模块化 | 模块化 | 
| 数据绑定 | 双向绑定 | 单向绑定 | 双向绑定 | 
| 模板能力 | 强大 | 自由 | 自由 | 
| 自由度 | 较小 | 大 | 较大 | 
| 路由 | 静态路由 | 动态路由 | 动态路由 | 
	 
十六.SPA、MPA是什么?
	 SPA单页面应用
	 MPA多页面应用
十七.模块化、组件化编程思想
	 编程的复用性考虑如:vue中的module.export各种组件等。
参考链接: https://www.cnblogs.com/chengkanghua/p/11314245.html;
参考链接: https://www.cnblogs.com/lalong/p/9335986.html;
参考链接: https://blog.csdn.net/tangxiujiang/article/details/81104174;
                    
                
                
            
        
浙公网安备 33010602011771号