代码改变世界

day03 web

2020-03-02 11:52  l-pf  阅读(146)  评论(0)    收藏  举报
  1. 写出常用的bootstrap的样式。

  2. 什么是响应式布局?
    响应式布局是Ethan Marcotte在2010年5月份提出的一个概念,简而言之,就是一个网站能够兼容多个终端——而不是为每个终端做一个特定的版本。这个概念是为解决移动互联网浏览而诞生的。
    响应式布局可以为不同终端的用户提供更加舒适的界面和更好的用户体验,而且随着目前大屏幕移动设备的普及,用“大势所趋”来形容也不为过。随着越来越多的设计师采用这个技术,我们不仅看到很多的创新,还看到了一些成形的模式。
    利用媒体查询,让同一个网站兼容不同的终端(PC端、移动端)呈现不同的页面布局。

  3. 请通过jQuery发送ajax请求。

post

$.ajax({
type: "POST",
url: 'aaa/bbb',
data: JSON.stringify({
aa: 'aa',
isdefault: isdefault //name需要和后台中javabean的属性名称严格一致
}),//转换为json字符串
async: false,
contentType: 'application/json', //json数据提交
sadataType: "json",
success: function(response) {
if (response.code == '0000') {//code 是后台返回的数据对象的属性
// alert(response.data.validate);
isvalidate = response.data.validate;
}
}
});

get

$.ajax({
type: "GET",
url: 'aa/bb',
data: {
templateId: tempId,
questionId: questionId
},
async: false,
contentType: 'application/json',
dataType: "json",
error: function(data) {
alert(data.message);
},
success: function(response) {
// alert(response.code)
if (response.code == '0000') {
//todo
} else {
alert("保存失败," + response.message);
}
}
});
4. JavaScript与this相关的面试题(4分)

name = '老男孩';

info = {
	name:'alex',
	age:123,
	func:function(){
		console.log(this.name);
	}
}

info.func() 
name = '老男孩';

info = {
	name:'alex',
	age:123,
	func:function(){
		console.log(this.name);
        function f1(){
            console.log(this.name);
        }
        f1()
	}
}

info.func() 
name = '老男孩';

info = {
	name:'alex',
	age:123,
	func:function(){
		console.log(this.name);
        (function(){
            console.log(this.name);
        })()
	}
}

info.func() 
name = '老男孩';

info = {
	name:'alex',
	age:123,
	func:function(){
		console.log(this.name); 
        var xxx = this;
        (function(){
            console.log(xxx.name); 
        })()
	}
}

info.func() 

  1. 什么是跨域?如何解决?
    跨域:指的是浏览器不能执行其他网站的脚本。它是由浏览器的同源策略造成的,是浏览器对javascript施加的安全限制。
    首先我们用nginx作为代理服务器和用户交互,这样用户就只需要在80端口上进行交互就可以了,这样就避免了跨域问题,因为我们都是在80端口上进行交互的;

  2. 简述你对Http协议的理解?
    HTTP是一个 客户端和 服务器端请求和应答的标准(TCP)。
    超文本传输协议

  3. 简述你对Https协议的理解?
    HTTPS (全称:Hyper Text Transfer Protocol over SecureSocket Layer),是以安全为目标的 HTTP 通道,在HTTP的基础上通过传输加密和身份认证保证了传输过程的安全性。
    HTTPS 在HTTP 的基础下加入SSL 层,HTTPS 的安全基础是 SSL,因此加密的详细内容就需要 SSL。 HTTPS 存在不同于 HTTP 的默认端口及一个加密/身份验证层(在 HTTP与 TCP 之间)。
    这个系统提供了身份验证与加密通讯方法。它被广泛用于万维网上安全敏感的通讯,例如交易支付等方面。

  4. 列举常见的http请求头及作用?
    请求头:
    accept:浏览器通过这个头告诉服务器,它所支持的数据类型
    Accept-Charset: 浏览器通过这个头告诉服务器,它支持哪种字符集
    Accept-Encoding:浏览器通过这个头告诉服务器,支持的压缩格式
    Accept-Language:浏览器通过这个头告诉服务器,它的语言环境
    Host:浏览器通过这个头告诉服务器,想访问哪台主机
    If-Modified-Since: 浏览器通过这个头告诉服务器,缓存数据的时间
    Referer:浏览器通过这个头告诉服务器,客户机是哪个页面来的 防盗链
    Connection:浏览器通过这个头告诉服务器,请求完后是断开链接还是何持链接
    响应头
    Location: 服务器通过这个头,来告诉浏览器跳到哪里
    Server:服务器通过这个头,告诉浏览器服务器的型号
    Content-Encoding:服务器通过这个头,告诉浏览器,数据的压缩格式
    Content-Length: 服务器通过这个头,告诉浏览器回送数据的长度
    Content-Language: 服务器通过这个头,告诉浏览器语言环境
    Content-Type:服务器通过这个头,告诉浏览器回送数据的类型
    Refresh:服务器通过这个头,告诉浏览器定时刷新
    Content-Disposition: 服务器通过这个头,告诉浏览器以下载方式打数据
    Transfer-Encoding:服务器通过这个头,告诉浏览器数据是以分块方式回送的
    Expires: -1 控制浏览器不要缓存
    Cache-Control: no-cache

  5. 列举常见的http请求方法及作用?
    GET POST PUT DELETE HEAD OPTIONS TRACE CONNECT

  6. 列举常见的http响应状态码。
    1xx 请求已接受,进一步进行处理
    2xx 请求已经接受,也正常处理
    3xx 重定向
    4xx 请求的错误 403 404
    5xx 服务器的错误

  7. http中connections:keep-alive的请求头的作用?
    我们知道HTTP协议采用“请求-应答”模式,当使用普通模式,即非KeepAlive模式时,每个请求/应答客户和服务器都要新建一个连接,完成 之后立即断开连接(HTTP协议为无连接的协议);
    当使用Keep-Alive模式(又称持久连接、连接重用)时,Keep-Alive功能使客户端到服 务器端的连接持续有效,当出现对服务器的后继请求时,Keep-Alive功能避免了建立或者重新建立连接。
    http 1.0中默认是关闭的,需要在http头加入"Connection: Keep-Alive",才能启用Keep-Alive;http 1.1中默认启用Keep-Alive,如果加入"Connection: close ",才关闭。
    目前大部分浏览器都是用http1.1协议,也就是说默认都会发起Keep-Alive的连接请求了,所以是否能完成一个完整的Keep- Alive连接就看服务器设置情况。

  8. django请求生命周期?

  9. 什么是wsgi?
    Web服务器网关接口(WSGI)是为Python语言定义的Web服务器和Web应用程序或框架之间的一种简单而通用的接口。自从WSGI被开发出来以后,许多其它语言中也出现了类似接口

  10. 什么是MVC ?什么是MTV?
    MVC :
    模型:models模型 数据库交互
    视图:展示给用户看的html
    控制器:业务逻辑
    MTV
    模型 models模型orm
    模板:template模板
    视图:业务逻辑

  11. django中间件作用以及应用场景?
    中间件是介于request与response处理之间的一道处理过程,用于在全局范围内改变Django的输入和输出。
    简单的来说中间件是帮助我们在视图函数执行之前和执行之后都可以做一些额外的操作
    例如:
    1.Django项目中默认启用了csrf保护,每次请求时通过CSRF中间件检查请求中是否有正确token值
    2.当用户在页面上发送请求时,通过自定义的认证中间件,判断用户是否已经登陆,未登陆就去登陆。
    3.当有用户请求过来时,判断用户是否在白名单或者在黑名单里

  12. django中FBV和CBV有什么区别?
    FBV就是在url中一个路径对应一个函数
    CBV就是在url中一个路径对应一个类

  13. django orm中如何批量创建数据?

  14. django 如何执行原生SQL?

  15. django的orm如何查询id不等于5的数据。
    ret = models.Person.objects.exclude(id=1)

  16. cookie和session的区别?
    cookie是指一小段信息,是服务器发出存储在浏览器的一组组键值对,
    session根据不同的cookie id,在服务器上保存一段时间的唯一标识。

  17. django的orm中on_delete的作用?
    表示外键关联到该表,当这个表删除了该条数据,关联的表中不删除,仅仅是把外键置空

  18. 描述crm有哪些功能?
    登录
    注册
    客户管理(增删改查)
    私有客户(客户转换)
    班级
    课程
    用户

  19. crm中什么是公户?什么是私户?为什么要做这个区分?
    公户是没有人管理的用户
    私户是专属某个人管理的用户

  20. 请列举出CRM系统中的表。
    部门表
    客户表
    校区表
    班级表
    跟进记录表
    报名表
    缴费记录表
    课程记录表
    学习记录表

  21. 对数据库的数据做展示时,不同字段类型有不同的展示方法,分别是什么?

  22. 请详细说说你们公司销售是如何使用CRM的。

  23. CRM中有哪些技术点?

  24. 为什么不用现成的crm而是自己去开发?

  25. 请简述实现权限控制的流程。

  26. 列举权限有多少张表?表中都有那些字段?

  27. 为什么要把权限信息放到session中?权限信息放到session有什么优缺点?
    安全
    优点:
    1:简单且高性能
    2:支持分布式与集群
    3:支持服务器断电和重启
    4:支持 tomcat、jetty 等运行容器重启
    缺点:
    1、需要检查和维护session过期,手动维护cookie;
    2、不能有频繁的session数据存取;

  28. 权限控制到按钮级别是如何实现的?

  29. 如何实现把权限粒度控制到数据行?

第二部分 补充题

  1. 详细描述是jsonp实现机制?
  2. django的orm如何通过数据自动化生成models类?
  3. django中如何设置缓存?
  4. django中信号的作用?
  5. django中如何设置读写分离