【博学谷学习记录】超强总结,用心分享。Web重要知识点。

1. 络通讯部分

 

 

1.1 TCPUDP区别?

 

 


 

TCP(Transmission Control Protocol 传输控制协议)是一种面向连接(连接导向)的、可靠的、 基于 IP 的传输层协议。

UDP 是 User Datagram Protocol 的简称,中文名是用户数据报协议,是 OSI 参考模型中的传输层协议,它是一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务。

TCP 和 UDP 都是来自于传输层的协议。传输层位于应用层和网络层之间,负责位于不同主机中进程之间的通信。

TCP 与 UDP 区别

 

 

 

 

1.TCP 基于连接 UDP 无连接

2. TCP 要求系统资源较多,UDP 较少

3. TCP 保证数据正确性,UDP 可能丢包

4.TCP 保证数据顺序,UDP 不保证

 

 

1.2 什么是 HTTP 协议?

 

客户端和服务器端之间数据传输的格式规范,格式简称为“超文本传输协议”。是一个基于请求与响应模式的、无状态的、应用层的协议,基于 TCP 的连接方式


 

1.3 TCP 的三次握手

 

 

 

为了准确无误地把数据送达目标处,TCP 协议采用了三次握手策略。

 

 

 

为什么要三次握手?

 

三次握手的目的是建立可靠的通信信道,说到通讯,简单来说就是数据的发送与接收,而三次握手最主要的目的就是 双方确认自己与对方的发送与接收是正常的。

 

SYN:同步序列编号(Synchronize Sequence Numbers)。是 TCP/IP 建立连接时使用的握手信号。

 

第一次握手:客户端给服务器发送一个 SYN。客户端发送网络包,服务端收到了。服务器得出结论:客户端的发送能力,服务端的接收能力正常。

第二次握手:服务端收到 SYN 报文之后,会应答一个 SYN+ACK 报文。服务端发包,客户端收到了。客户端得出结论:服务端的接收和发送能力,客户端的接收和发送能力正常。但是此时服务端不能确认客户端的接收能力是否正常。

第三次握手;客户端收到 SYN+ACK 报文之后,回应一个 ACK 报文。客户端发包,服务端收到了。服务器得出结论:客户端的接收和发送能力,自己的接收发送能力都正常。

通过三次握手,双方都确认对方的接收以及发送能力正常。

 

 

1.4 HTTP中重定向和请求转发的区别?

 

实现

转发:用 request 的 getRequestDispatcher()方法得到 ReuqestDispatcher 对象,调用forward()方法


request.getRequestDispatcher("other.jsp").forward(request, response);重定向:调用 response 的 sendRedirect()方法

response.sendRedirect("other.jsp"); 1> 重定向 2 次请求,请求转发 1 次请求

2> 重定向地址栏会变,请求转发地址栏不变

3> 重定向是浏览器跳转,请求转发是服务器跳转

4> 重定向可以跳转到任意网址,请求转发只能跳转当前项目5>请求转发不会丢失请求数据,重定向会丢失

 

1.5 Get 和 Post 的区别?

 

1. Get 是不安全的,因为在传输过程,数据被放在请求的 URL 中;Post 的所有操作对用户来说都是不可见的。

2. Get 传送的数据量较小,一般传输数据大小不超过 2k-4k(根据浏览器不同,限制不一样,但相差不大这主要是因为受 URL 长度限制;Post 传送的数据量较大,一般被默认为不受限制。

3. Get 限制 Form 表单的数据集的值必须为 ASCII 字符;而 Post 支持整个 ISO10646 字符集。

4. Get 执行效率却比 Post 方法好。Get 是 form 提交的默认方法。

 

2. cookiesession的区别?(必会)

 

 

1. 存储位置不同

cookie 存放在客户端电脑,是一个磁盘文件。Ie 浏览器是可以从文件夹中找到。

session 是存放在服务器内存中的一个对象。 chrome 浏览器进行安全处理,只能通过浏览器找到。Session 是服务器端会话管理技术,并且 session 就是 cookie 实现的。

2. 存储容量不同

单个 cookie 保存的数据<=4KB,一个站点最多保存 20 个 Cookie。

对于 session 来说并没有上限,但出于对服务器端的性能考虑,session 内不要存放过多的东 西,并且设置 session 删除机制。

3. 存储方式不同

cookie 中只能保管 ASCII 字符串,并需要通过编码方式存储为 Unicode 字符或者二进制数据。

session 中能够存储任何类型的数据,包括且不限于 string,integer,list,map 等。

4. 隐私策略不同

cookie 对客户端是可见的,别有用心的人可以分析存放在本地的 cookie 并进行 cookie 欺骗,所以它是不安全的。

session 存储在服务器上,不存在敏感信息泄漏的风险。

5.  有效期上不同

开发可以通过设置 cookie 的属性,达到使 cookie 长期有效的效果。

session 依赖于名为 JSESSIONID 的 cookie,而 cookie JSESSIONID 的过期时间默认为-1,只需关闭窗口该 session 就会失效,因而 session 不能达到长期有效的效果。

6. 服务器压力不同

cookie 保管在客户端,不占用服务器资源。对于并发用户十分多的网站,cookie 是很好的选择。

session 是保管在服务器端的,每个用户都会产生一个 session。假如并发访问的用户十分多,会产生十分多的 session,耗费大量的内存。

 

3. JspServlet

 

 

1.Jsp 和 Servlet 的区别?

 

相同点

jsp 经编译后就变成了 servlet,jsp 本质就是 servlet,jvm 只能识别 java 的类,不能识别jsp 代码,web 容器将 jsp 的代码编译成 jvm 能够识别的 java 类。其实就是当你通过 http请求一个 JSP 页面是,首先 Tomcat 会调用 servlet 的 service()方法将 JSP 编译成为Servlet,然后执行 Servlet。

不同点

JSP 侧重视图,Sevlet 主要用于控制逻辑。Servlet 中没有内置对象 。

JSP 中的内置对象都是必须通过 HttpServletRequest 对象,HttpServletResponse 对象以及 HttpServlet 对象得到。

 

2.Servlet 的生命周期

 

// 1. servlet 对象创建时,调用此方法

public void init(ServletConfig servletConfig);

 

// 2. 用户访问 servlet 时,调用此方法

public void service(ServletRequest servletRequest, ServletResponse servletResponse);

 

// 3. servlet 对象销毁时,调用此方法public void destroy();


 

3.JSP 九大内置对象

 

 

out 对象:用于向客户端、浏览器输出数据。

request 对象:封装了来自客户端、浏览器的各种信息。response 对象:封装了服务器的响应信息。

exception 对象:封装了 jsp 程序执行过程中发生的异常和错误信息。config 对象:封装了应用程序的配置信息。

page 对象:指向了当前 jsp 程序本身。

session 对象:用来保存会话信息。也就是说,可以实现在同一用户的不同请求之间共享数application 对象:代表了当前应用程序的上下文。可以在不同的用户之间共享信息。pageContext 对象:提供了对 jsp 页面所有对象以及命名空间的访问。

 

4. Ajaxaxios的介绍(必会)

 

 

Ajax 即"Asynchronous JavaScript And XML"(异步 JavaScript 和 XML),是指一种创建交互式、快速动态网页应用的网页开发技术,无需重新加载整个网页的情况下,能够更新部分网页的技术。

Ajax 应用程序的优势在于:

1. 通过异步模式,提升了用户体验

2. 优化了浏览器和服务器之间的传输,减少不必要的数据往返,减少了带宽占用

3. Ajax 引擎在客户端运行,承担了一部分本来由服务器承担的工作,从而减少了大用户量下的服务器负载。

 

axios 是什么?怎样使用它?怎么解决跨域的问题?

axios 的是一种异步请求,用法和 ajax 类似,安装 npm install axios --save 即可使用,请求中包括 get,post,put, patch ,delete 等五种请求方式.

<script>
// 引入 axios
import Axios from 'axios'


export default { methods: {
testAxios() {
const url = 'https://www.baidu.com/'


Axios.get(url).then(response => {
if (response.data) {
 
console.log(response.data)
}
}).catch(err => {
alert('请求失败')
})
}
}
}
</script>

axios 是一种异步请求方式,有 cdn 引入和 npm 方法引入并使用解决跨域常用的有两种方式

1. CORS 解决跨域问题,这需要通过后端来解决,通过设置 header 头来通配。使服务器允许跨域请求接口数据,而前端正常使用 axios 请求方式。

2. 通过接口代理的方式,在 vue 项目中创建一个 vue.config.js,导入一个 devserve,并配置里面的选项即可。

posted @ 2022-12-11 18:55  LINwenguan  阅读(42)  评论(0编辑  收藏  举报