欢迎大家来到IT世界,在知识的湖畔探索吧!
欢迎大家来到IT世界,在知识的湖畔探索吧!
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的区别?
get请求与post请求的区别?
1.提交数据的形式
- GET方法一般指从服务器获取数据,请求参数(查询字符串)后面直接跟URL,后面跟?分区URL和传输数据,参数之间用&(?1 = value1 & key2 = value2),可以直接放入浏览器的地址栏。例如,登录是使用GET方法。
示例: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.提交数据的大小/长度
- Get是直接在浏览器地址栏中输入的,直接影响到URL的长度。但是,在HTTP协议规范中对URL的长度没有限制。对URL长度的限制受客户端或服务器不同支持的影响:比如IE对URL长度的限制是2083字节(2K+35)。对于其他浏览器,如网景、火狐等。,理论上没有长度限制,而且这个限制取决于操作系统的支持。由于浏览器的限制,整个URL的长度可以很长,但不能超过2049KB的大小限制,发文也没有大小限制。
- post模式在HTTP协议规范中不受限制,但起限制作用的是服务器处理器的处理能力。因此,大小限制仍然受到每个web服务器的不同配置的影响。
3.提交数据的安全性
- 由于get的参数直接拼接在浏览器地址栏的URL中,用户名和密码会以明文形式出现在URL上,暴露在互联网上,安全性差,无法用于传输敏感信息。
- post请求参数放在正文中,通过表单数据提交。post比get更安全。
- get方法的安全性较弱,原因如下:
- 登录页面可能被浏览器缓存;
- 其他人查看浏览器历史,然后其他人可以获得账号和密码;
- 遇到跨站点攻击时,安全性能更差;
4.编码方式
- get的参数只能支持ASCII;
- post没有限制,也允许二进制数据;
5.请求方式
- get是获取指定的资源;
- post是向指定的资源提交要被处理的数据;
6.请求体
- get没有请求体;
- post有请求体;
7.效率方面
- get产生一个tcp数据包;
- post产生两个tcp数据包,post需要两步,时间上消耗要多一点,get比post更有效;
8.请求过程
- 对于get方式的请求,浏览器会把http header和data一并发送出去,服务器响应200(返回数据),get请求的过程:
1)浏览器请求tcp连接(第一次握手);
2)服务器答应进行tcp连接(第二次握手);
3)浏览器确认,并发送get请求头和数据(第三次握手,这个报文比较小,所以 http会在此时进行第一次数据发送);
4)服务器返回200OK响应;
- 而对于post,浏览器先发送header,服务器响应100continue,浏览器再发送data,服务器响应200ok(返回数据),post请求的过程:
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.数据链路层
7.物理层
请简述TCP三次握手和四次挥手?
1.三次握手
浏览器输入URL到将页面渲染出来发生了什么?
编辑 搜图
常用HTTP状态码
关于常见的HTTP状态码,这是一个面试经常问的题目。
|
状态码 |
类别 |
|
1XX |
信息性状态码 |
|
2XX |
成功状态码 |
|
3XX |
重定向状态码 |
|
4XX |
客户端错误状态码 |
|
5XX |
服务端错误状态码 |
常见的HTTP状态码:
1.1XX
- 100 Continue:表示正常,客户端可以继续发送请求
- 101 Switching Protocols:切换协议,服务器根据客户端的请求切换协议。
2.2XX
- 200 OK:请求成功
- 201 Created:已创建,表示成功请求并创建了新的资源
- 202 Accepted:已接受,已接受请求,但未处理完成。
- 204 No Content:无内容,服务器成功处理,但未返回内容。
- 205 Reset Content:重置内容,服务器处理成功,客户端应重置文档视图。
- 206 Partial Content:表示客户端进行了范围请求,响应报文应包含Content-Range指定范围的实体内容
3.3XX
- 301 Moved Permanently:永久性重定向
- 302 Found:临时重定向
- 303 See Other:和301功能类似,但要求客户端采用get方法获取资源
- 304 Not Modified:所请求的资源未修改,服务器返回此状态码时,不会返回任何资源。
- 305 Use Proxy:所请求的资源必须通过代理访问
- 307 Temporary Redirect:临时重定向,与302类似,要求使用get请求重定向。
4.4XX
- 400 Bad Request:客户端请求的语法错误,服务器无法理解。
- 401 Unauthorized:表示发送的请求需要有认证信息。
- 403 Forbidden:服务器理解用户的请求,但是拒绝执行该请求
- 404 Not Found:服务器无法根据客户端的请求找到资源。
- 405 Method Not Allowed:客户端请求中的方法被禁止
- 406 Not Acceptable:服务器无法根据客户端请求的内容特性完成请求。
- 408 Request Time-out:服务器等待客户端发送的请求时间过长,超时。
5.5XX
- 500 Internal Server Error:服务器内部错误,无法完成请求
- 501 Not Implemented:服务器不支持请求的功能,无法完成请求
如果已经建立了连接,但是客户端突然出现故障了怎么办?
TCP 和 UDP 区别及应用场景?
1.TCP和UDP区别
面向连接 vs 无连接
可靠性:TCP 可靠,丢包重传;UDP 不可靠。
有序性:TCP 利用序列号保证了数据的有序性(数据到达会排序)
速度:TCP 创建连接,速率较慢;UDP 较快
TCP 流模式,UDP 报文模式
2.TCP和UDP应用场景
TCP:
当对网络通讯质量有要求的时候,比如:整个数据要准确无误的传递给对方,这往往用于一些要求可靠的应用,比如 HTTP、HTTPS、FTP 等传输文件的协议,POP、SMTP 等邮件传输的协议。在日常生活中,常见使用 TCP 协议的应用如下:
- 万维网(HTTP);
- 邮件(POP、SMTP);
- 文件传输(FTP);
UDP:
当对网络通讯质量要求不高的时候,要求网络通讯速度能尽量的快,这时就可以使用 UDP。日常生活中常见使用 UDP 协议的应用如:语音,视频。
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://itzsg.com/143682.html