Cookie和Session的区别????
Cookie 是访问某些 站以后在本地存储的一些 站相关的信息,下次再访问的时候减少一些步骤。另外一个更准确的说法是:Cookie 是服务器在本地机器上存储的小段文本并随每一个请求发送至同一个服务器,是一种在客户端保持状态的方案。由于 HTTP 协议是无状态的协议,所以服务端需要记录用户的状态时,就需要用某种机制来识具体的用户,这个机制就是 Session。
Cookie和Session是解决http协议的无状态性,区别如下:
1.存储位置不同
Cookie是将用户数据通过加密的方式保存在客户端,大多数情况Cookie存储在浏览器;Session是用于控制客户端和服务端的连接,Session存储在服务器;
2.存储容量不同
单个Cookie保存的数据不得超过4kb,一个站点最多20个Cookie,Session一般情况下没有上限,不过建议不要存放太多东西,否则影响性能;
3.存取方式不同
Cookie只能用ASCII字符串,通过编码方式获取Unicode字符或者二进制数据,不好存储复杂的信息,而Session能存储任何类型的数据;
4.隐私策略/安全性不同
Cookie放在客户端,可以进行Cookie欺骗,所以不安全,Session放在服务端,更加安全;
5.有效期不同
Cookie可以设置属性达到长期有效,Session依赖于JSESSIONID的Cookie,Cookie JSESSIONID的过期时间默认为-1,只需要关闭窗口Session就会失效,就算不依赖Cookie,用UrL重写也不能完成,如果Session超时时间过长,容易导致内存溢出;
6.服务器压力不同
Cookie保存在本地,不存在服务端压力,Session保存在服务端,每个用户产生一个Session,当访问增多,会比较占用服务器的性能,如果主要考虑到减轻服务器性能方面,应当使用Cookie;
7.浏览器支持不同
如果浏览器禁用Cookie,那么Cookie直接失效,Session比较好点,可以用URL重写;
8.cookie和session应用的场景
cookie:用户的登录状态,记录用户的习惯,如购物车;
session:登录验证;
HTTP与HTTPS的区别???
HTTP协议传输的数据是未加密的,也就是明文,所以用HTTP协议传输隐私信息是非常不安全的。为了保证这些私有数据能够被加密传输, 景设计了SSL(SecureSocketsLayer)协议对HTTP协议传输的数据进行加密,由此诞生了HTTPS。简单来说,httpS协议是由SSL+HTTP协议构建的 络协议,可以用于加密传输和认证,比HTTP协议更安全。
HTTP和HTTPS都是应用层协议,本质上没有区别。他们的区别是,HTTPS是安全版的HTTP,HTTP信息是明文传输的,HTTPS是安全的SSL加密传输,比HTTP协议更安全。它们使用不同的端口。默认情况下,HTTP使用端口80,而HTTPS使用端口443。
HTTPS和HTTP的主要区别如下:一般来说:HTTPS=SSL+HTTP。
Https协议需要向ca申请证书,一般免费的证书很少,所以需要一定的费用。
Http是一种超文本传输协议,信息以明文形式传输,https是一种安全的ssl加密传输协议。
Http和https使用完全不同的连接方法和不同的端口。前者是80,而后者是443(这只是一个不同的默认端口,实际上可以更改)。
http连接非常简单且无状态;HttpS协议是由SSL+HTTP协议构建的 络协议,可用于加密传输和认证。它比HTTP协议更安全。
get请求与post请求的区别??
1.提交数据的形式
示例:log in . action name = itester & password = idonknow & verify = % E4 % BD % A0 % E5 % a5 % BD。如果数据是英文字母/数字,则按原样发送,如果是空格,则转换为+,如果是中文/其他字符,则直接用BASE64加密字符串,结果如下:%E4 %BD%A0%E5%A5%BD,其中%XX中的XX是十六进制符 表示的ASCII。
POST意味着客户端将表单数据提交给服务器,数据将放在请求数据字段中,用&分隔字段。请求行不包含数据参数,地址栏也没有其他参数。因此,POST是通过表单提交的,请求参数放在正文中。比如 页上新用户的注册、问卷、回答都采用POST的方式。
2.提交数据的大小/长度
3.提交数据的安全性
4.编码方式
5.请求方式
6.请求体
7.效率方面
8.请求过程
1)浏览器请求tcp连接(第一次握手);
2)服务器答应进行tcp连接(第二次握手);
3)浏览器确认,并发送get请求头和数据(第三次握手,这个 文比较小,所以 http会在此时进行第一次数据发送);
4)服务器返回200OK响应;
1)浏览器请求tcp连接(第一次握手);
2)服务器答应进行tcp连接(第二次握手);
3)浏览器确认,并发送post请求头(第三次握手,这个 文比较小,所以 http 会 在此时进行第一次数据发送);
4)服务器返回100 Continue响应;
5)浏览器发送数据;
6)服务器返回200 OK响应;
OSI七层模型的作用分别是??
1.应用层
OSI参考模型中最接近用户的层为计算机用户提供应用接口,也直接为用户提供各种 络服务。我们常用的应用层 络服务协议包括HTTP、HTTPS、FTP、POP3、SMTP等。
2.表示层
为应用层数据提供各种编码和转换功能,保证一个系统的应用层发送的数据能够被另一个系统的应用层识别。如果需要,该层可以提供一种标准表示,用于将计算机内部的各种数据格式转换为通信中使用的标准表示;
3.会话层
负责建立、管理和终止表示层实体之间的通信会话。这一层的通信由不同设备中应用程序之间的服务请求和响应组成;
4.传输层
主机之间建立了端到端的链路,传输层的作用是为上层协议提供端到端的可靠透明的数据传输服务,包括差错控制和流量控制。这一层将下层数据通信的细节与上层屏蔽开来,使得上层用户只能看到两个传输实体之间从主机到主机的可靠数据路径,可以由用户进行控制和设置。我们通常说TCP/ UDP就在这一层。这里的端口 是“end”;
5. 络层
通过IP寻址来建立两个节点之间的连接,为源端的运输层送来的分组,选择合适的路由和交换节点,正确无误地按照地址传送给目的端的运输层;
6.数据链路层
将比特组合成字节,然后将字节组合成帧,使用链路层地址(以太 使用MAC地址)访问介质,并进行错误检测。数据链路层分为两个子层:逻辑链路控制子层和媒体访问控制子层。媒体访问控制子层处理CSMA/光盘算法、数据错误检查、成帧等。LLC子层定义了一些字段,使最后一个协议能够共享数据链路层。实际上,LLC子层不是必需的;
7.物理层
实际信 的传输通过物理层实现,比特流通过物理介质传输。规定了液位、速度和电缆引脚。常用的设备包括(各种物理设备)集线器、中继器、调制解调器、 线、双绞线和同轴电缆,这些都是物理层的传输介质。
请简述TCP三次握手和四次挥手??
1.三次握手
三次握手指的是创建连接的过程:首先,客户端向服务器发送请求,询问是否可以发送数据;服务器收到请求后,如果同意,会回复确认消息;收到确认消息后,客户端开始发送数据。
第一次握手:建立连接时,客户端向服务器发送请求消息(SYN),“我要建立连接”;
第二次握手:收到请求消息后,如果服务器同意连接,则向客户端发送确认消息(SYN/ACK),“同意建立”;
三次握手:客户端收到服务器的确认后,再次向服务器发送确认消息,完成连接(ACK);
2.挥手四次
四次波指的是断开的过程:客户端向服务器发送请求,询问是否有可能断开;服务器将响应其当前状态;如果服务器准备好了,它将向客户端发送断开请求。如果还没有准备好,还有数据没有响应,它会等待响应完成后再向客户端发送请求;最后,服务器和客户端断开连接。
第一波:客户端想分手,给服务器发消息(FIN);
第二波:服务器通知客户端已经接受该波请求,并返回确认消息(ACK),但还没有准备好分手;
第三波:服务器准备分手通知客户端(FIN);
第四波:客户端向服务器发送消息(ACK)确认分手,服务器关闭连接。
浏览器输入URL到将页面渲染出来发生了什么??
1.首先在浏览器地址栏输入 址,先分析 址,检查 址是否合法;
2.浏览器首先检查浏览器缓存-系统缓存-路由器缓存,如果缓存中有,页面内容会直接显示在屏幕上。如果没有,请跳到步骤3。
浏览器缓存:浏览器会记录一段时间的DNS,所以只是第一个解析DNS请求的地方;操作系统缓存:如果这个记录没有包含在浏览器缓存中,系统会调用操作系统获取操作系统的记录(保存最新的DNS查询缓存);
路由器缓存:如果上述两个步骤都无法成功获取DNS记录,则继续搜索路由器缓存;
ISP缓存:如果以上都失败,继续搜索ISP。
3.在发送http请求之前,需要进行域名解析(DNS解析)来获取对应的IP地址。
4.浏览器发起与服务器的TCP连接,并与浏览器建立TCP三次握手。
5.握手成功后,浏览器向服务器发送一个HTTP请求,请求数据包。
6.服务器处理收到的请求,并将数据返回给浏览器。
7.浏览器接收到HTTP响应。
8.浏览器对响应进行解码,如果响应可以被缓存,则存储在缓存中。
9.浏览器发送请求以获取嵌入在HTML中的资源(HTML、CSS、JavaScript、图片、音乐…),对于未知类型会弹出一个对话框。
10.浏览器发送异步请求。
11.最后,渲染所有页面。
常用HTTP状态码?
关于常见的HTTP状态码,这是一个面试经常问的题目。
状态码 |
类别 |
1XX |
信息性状态码 |
2XX |
成功状态码 |
3XX |
重定向状态码 |
4XX |
客户端错误状态码 |
5XX |
服务端错误状态码 |
常见的HTTP状态码:
1.1XX
2.2XX
3.3XX
4.4XX
5.5XX
如果已经建立了连接,但是客户端突然出现故障了怎么办??
如果TCP连接已经建立,并且客户端在通信过程中突然出现故障,那么服务器不会永远等待,过一会儿再关闭连接。具体原理是TCP有一个保活机制,主要用于服务器端检测已经建立TCP链路的客户端的状态,防止服务器端因为Linux系统中可以创建的TCP链路总数有限而一直维护TCP链路。
保活机制原理:设置TCP保活机制的保活时间,即在TCP链路超过这个时间时发送保活检测消息,不进行任何数据交互;将保活检测消息的发送时间间隔设置为保活间隔;;设置保持活动探测消息的总发送时间,保持计数。如果保持计数时间的保持活动探测消息没有收到客户端的响应,服务器将关闭与客户端的TCP链接。
TCP 和 UDP 区别及应用场景??
1.TCP和UDP区别
面向连接 vs 无连接
可靠性:TCP 可靠,丢包重传;UDP 不可靠。
有序性:TCP 利用序列 保证了数据的有序性(数据到达会排序)
速度:TCP 创建连接,速率较慢;UDP 较快
TCP 流模式,UDP 文模式
2.TCP和UDP应用场景
TCP:
当对 络通讯质量有要求的时候,比如:整个数据要准确无误的传递给对方,这往往用于一些要求可靠的应用,比如 HTTP、HTTPS、FTP 等传输文件的协议,POP、SMTP 等邮件传输的协议。在日常生活中,常见使用 TCP 协议的应用如下:
UDP:
当对 络通讯质量要求不高的时候,要求 络通讯速度能尽量的快,这时就可以使用 UDP。日常生活中常见使用 UDP 协议的应用如:语音,视频。
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!