文章目录

  • 1. jsp 和 servlet 有什么区别?*
  • 2.session 和 cookie 有什么区别?
  • 3.如果客户端禁止 cookie 能实现 session 还能用吗?*
  • 4.什么是SQL注入?如何避免 ?
  • 5.什么是XSS攻击?如何避免?
  • 6.什么是 CSRF 攻击?如何避免?
  • 7. 限流算法有哪些?
  • 8.http 响应码有哪些?
  • 9.说明 forward 和redirect的区别?*
  • 10.简述 tcp 和 udp的区别?
  • 11.tcp 为什么要三次握手,两次不行吗?为什么?
  • 12.为什么连接的时候是三次握手,关闭的时候却是四次挥手?(或者为什么是四次而不是三次?)
  • 13.OSI七层模型?TCP/IP四层模型?
  • 14.get 和 post 请求有哪些区别?
  • 15.什么是跨域?如何实现跨域?*
  • 16.什么是Http无状态协议?怎么解决Http无状态协议?
  • 17.Http协议中有哪些请求方式?*
  • 18.Http请求的流程?
  • 19.域名解析过程?
  • 20.Http与Https区别?
  • 21.TCP 协议如何保证可靠传输?*
  • 22.HTTP长连接,短连接?
  • 23.HTTP 1.0和HTTP 1.1的主要区别是什么?Http1.1和Http2.0的主要区别是什么?
  • 24. URI和URL的区别是什么?
  • 25. 什么是JWT?*
  • 26. 什么是OAuth 2.0?*
  • 27. 单点登陆SSO如何实现?*
  • 28. RPC原理是什么?既有 HTTP ,为啥用 RPC 进行服务调用?*
  • 29. HTTP的Keep-Alive和TCP的Keep-Alive有什么区别?
  • 30. 理解Thrift和Protobuf*
  • 31. 什么是SYN Flood攻击和ACK Flood攻击?*
  • 32. 拥塞控制算法?
  • 33. 滑动窗口协议?
  • 补充:流量控制与拥塞控制的主要区别?
  • 34. ipv4和ipv6是什么?
  • 35. 为什么要划分子网,子网掩码有什么作用?
  • 36. 列举TCP和IP报文头部?*
  • 37. 路由选择协议 RIP、OSPF、BGP ?*
  • 38. DNS劫持概念?
  • 39. 为什么要进行URL编码?*
  • 40. 什么是无效链接?
  • 41. HTTPS协商过程?
  • 42. 什么是中间人攻击?如何避免?

1. jsp 和 servlet 有什么区别?*

JSP是为了简化Servlet的工作出现的替代品,JSP侧重于视图,Servlet更侧重于控制逻辑。

  • Servlet在Java代码中使用doGet(),doPost()中做相应的处理,通过HttpServletResponse对象动态输出HTML内容。
  • JSP在静态HTML内容中嵌入Java代码,Java代码被动态执行后生成HTML内容。

本质上说,Tomcat访问任何的资源都是用了Servlet实现的!JSP也不例外!JSP本身就是一种Servlet,它 在第一次被访问的时候(先部署后编译) 会被编译为HttpJspPage类(该类是HttpServlet的一个子类)。

对于静态资源,Tomcat最后会交由一个叫做DefaultServlet的类来处理
对于Servlet ,Tomcat最后会交由一个叫做 InvokerServlet的类来处理
对于JSP,Tomcat最后会交由一个叫做JspServlet的类来处理

所以Tomcat又叫Servlet容器嘛,什么都交给Servlet来处理。
参考:Java架构直通车——DispatcherServlet详解

2.session 和 cookie 有什么区别?

  1. 存储位置不同,服务器压力不同。
    cookie存储在客户端浏览器上,session存储在服务器上(sso session一般会存在redis上)。cookie不占用服务器资源,而对于并发高的项目,会产生十分多的session,耗费大量的内存。
  2. 有效期不同。
    开发可以通过设置cookie的maxAge属性,达到使cookie长期有效的效果。
    session依赖于名为JSESSIONID的cookie,而cookie JSESSIONID的过期时间默认为-1,只需关闭窗口该session就会失效,因而session不能达到长期有效的效果。
  3. 存储容量和方式不同。
    单个cookie保存的数据<=4KB,一个站点最多保存20个Cookie。
    对于session来说并没有上限,但出于对服务器端的性能考虑,session内不要存放过多的东西,并且设置session删除机制
  4. 隐私策略不同
    cookie对客户端是可见的,可以通过分析存放在本地的cookie或者拦截来进行cookie欺骗,所以它是不安全的。
    session存储在服务器上,对客户端是透明对,不存在敏感信息泄漏的风险。

3.如果客户端禁止 cookie 能实现 session 还能用吗?*

一般默认情况下,在会话中,服务器存储 session 的 sessionid 是通过 cookie 存到浏览器里。
如果浏览器禁用了 cookie,浏览器请求服务器无法携带 sessionid,服务器无法识别请求中的用户身份,session失效。
request.getSession()方法中在创建session的时候,同时也创建了一个cookie:new Cookie("JSESSIONID",session.getId())

但是,可以通过其他方法在禁用 cookie 的情况下,可以继续使用session。

  • 通过url重写,把 sessionid 作为参数追加的原 url 中,后续的浏览器与服务器交互中携带 sessionid 参数。

4.什么是SQL注入?如何避免 ?

sql注入是通过将SQL代码注入到查询参数中,从而破坏SQL语句的结构,并且之后传递到sql服务器解析并执行的一种攻击手法。

比如:
select * from carousel where id = <?>,问号中是要传入的值。
当要传入的值是1的时候:select * from carousel where id = 1,没什么问题。

当传入如下:select * from carousel where id = -1 OR 1=1,把数据库的结果全部都显示出来了。此时执行代码中id值带入了我们传参数的sql代码, 1=1 为真,OR 1=1便会查出表中所有的内容,达到攻击目的。

我们只需要知道数据库中的某一个用户的用户名,比如peter,在表单输入时,在用户名列输入 “peter’#”,密码随意输入,点击登陆后便会显示登陆成功,输出的sql语句为:


另外常用的SQL注入钥匙如链接所示。

所以,防止注入的方式有:

  • 严格检查输入变量的类型和格式:比如使用正则表达式
  • 过滤转义特殊字符
  • 使用PreparedStatement 预编译机制
  • 不能使用管理员身份连接数据库。

mybatis中的#和$的区别:
1、#将传入的数据都当成一个字符串,会对自动传入的数据加一个双引号。
如:where username=#{username},如果传入的值是111,那么解析成sql时的值为where username=“111”, 如果传入的值是id,则解析成的sql为where username=“id”. 
2、$将传入的数据直接显示生成在sql中。
如:where username=${username},如果传入的值是111,那么解析成sql时的值为where username=111;
如果传入的值是;drop table user;,则解析成的sql为:select id, username, password, role from user where username=;drop table user;
3、#方式能够很大程度防止sql注入,$方式无法防止Sql注入。

5.什么是XSS攻击?如何避免?

XSS 攻击,即跨站脚本攻击(Cross Site Scripting),它是 web 程序中常见的漏洞。

原理:攻击者往 web 页面里插入恶意的 HTML 代码(Javascript、css、html 标签等),当用户浏览该页面时,嵌入其中的 HTML 代码会被执行,从而达到恶意攻击用户的目的。如盗取用户 cookie 执行一系列操作,破坏页面结构、重定向到其他网站等(DOM型XSS)。 又比如在用户输入的地方插入一段代码,导致后端服务器或者数据库被攻击(存储型、反射型XSS)。

比如:(还有其他类型的XSS攻击,参考XSS攻击

面试准备:计算机网络常见面试题相关推荐

  1. 【面试系列】计算机网络常见面试题(一)

    [面试]计算机网络常见面试题

  2. 计算机网络常见面试题,一网打尽!

    计算机网络常见面试题 一 OSI与TCP/IP各层的结构与功能,都有哪些协议? 学习计算机网络时我们一般采用折中的办法,也就是中和 OSI 和 TCP/IP 的优点,采用一种只有五层协议的体系结构,这 ...

  3. 算法面试必备-----数据分析常见面试题

    算法面试必备-----数据分析常见面试题 算法面试必备-----数据分析常见面试题 1.统计学问题 问题:贝叶斯公式复述并解释应用场景 问题:朴素贝叶斯的理解 问题:参数估计 问题:极大似然估计 问题 ...

  4. 算法面试必备-----数据仓库常见面试题

    算法面试必备-----数据仓库常见面试题 算法面试必备-----数据仓库常见面试题 问题:什么叫数据仓库? 问题:数据仓库建模 为什么需要数据仓库建模? 数据仓库建模方法? 1.ER模型 2.维度建模 ...

  5. SAS程序员面试经历及常见面试题

    最近很多小伙伴都在看机会,我也分享一下最近的面试经历,并附上一些常见的面试题. 面试过程: 1.自我介绍,进行简要自我介绍 2.职业技能,会什么,简历上的实践经历 3.英语水平,简要介绍自己最喜欢学科 ...

  6. 操作系统和网络(一):计算机网络常见面试题

    计算机网络常见面试题总结 1.       OSI , TCP/IP ,五层协议的体系结构 OSI分层(7层) :物理层.数据链路层.网络层.传输层.会话层.表示层.应用层. TCP/IP分层(4层) ...

  7. [Java面试]六:常见面试题之设计模式

    我的博客首页:http://blog.csdn.net/m0_37116405 我的GitHub首页:https://github.com/KissLouis 设计模式六大原则 开闭原则:对扩展开放, ...

  8. 【网络】计算机网络常见面试题 - 前端面试必备 - 吐血整理

    文章目录 1. 参考模型 1. OSI 参考模型 七层 2. TCP/IP参考模型 四层 2. 在浏览器中输入网址之后执行 会发生什么? 3.URL和URI的区别? 4. 关于HTTP协议 4.1 为 ...

  9. 计算机考研复试计算机网络常见面试题

    本文是我2021年考研时准备的复试面试题,现在拿出来给大家分享一下 觉得好的点个赞哦,毕竟当初我也是整理了好久,改了好几次版本呢 祝大家都上岸!!!! 计算机网络 目录 1.TCP三次握手建立连接 1 ...

  10. vue component created没有触发_面试!面试!面试!vue常见面试题。

    "金三银四"的时候到了,一大批准备跳槽的程序员蠢蠢欲动,小编最近也在投简历,找工作.现在很多公司都要求vue.react.ng三大主流框架中的一两个.小编在此总结一下vue常见的面 ...

最新文章

  1. Linux下用 lsof 命令查找指定端口被哪个进程占用
  2. 判断整数小数_《除数是整数的小数除法》教学设计
  3. 访问其他程序中的数据(ContentResolver的CRUD操作)
  4. 字符串GZIP压缩解压
  5. Win7+Ubuntu双系统结构下,Ubuntu克隆至新硬盘,启动成功
  6. Saltstack的pillar组件(6)
  7. 干货!Redis集群工作原理解析
  8. python设计模式15-解释器模式
  9. Visual Studio [即时窗口] [命令窗口] (Immediate Window Command Window) 转
  10. Packet Tracer 思科模拟器入门教程 之九 路由器的基本配置
  11. JAVA版村庄哨塔种子_我的世界:5个稀有的地图种子,我在里面居然发现了圆形村庄!...
  12. Fabric.js 文档
  13. part3_模块五作业
  14. ceph---ceph osd DNE状态对集群的影响
  15. Email营销相关名词解释:PEM,UCE,Opt-in,Double Opt-In,Opt-out
  16. 【数字图像处理】二值图像行程编码
  17. 关于SVN:cleanup失败提示:failed to run the WC DB work queue associated with ‘E:XXX’
  18. css3复习P2(文本属性+列表属性+其他样式)
  19. python3.4勾股定理代码_用于解答算法题目的Python3代码框架
  20. 原生图片预览实现及由此引出的图片自适应宽高问题探索

热门文章

  1. 电脑扬声器没有声音,插上耳机也检测不到
  2. 一文带你轻松掌握多种编程范式
  3. 《Arduino实验》实验四:HC-SR501人体红外传感器检测是否有人存在
  4. RS-232接口标准(串口)
  5. MongoDB集群节点RECOVERING故障恢复
  6. matlab制作钟表,利用Matlab制作钟表实例教程
  7. c# 问题 vs2017 c# 划前半大括号,下半大扣号不会显示
  8. 寻求任意颜色转CMY的方法,帮个忙
  9. 我国最高山峰是珠穆朗玛峰,8848米。现在我有一张足够大的纸,它的厚度是0.01米。请问,我折叠多少次,可以折成珠穆朗玛峰的高度?
  10. WIFI能杀死植物吗?