网络的一些知识

关于HTTP和HTTPS:

http:超文本传输协议,在客户端与服务端之间传输信息,客户端发送html,css给服务器,服务器返回源码给客户端;

https:是一种更安全的传输协议(ssl协议),在协议上加了一层密码,不容易被黑客攻击,更加安全。多用于支付页面,政府机构页面,公安局页面,银行……;

HTTP 和 HTTPS 的共同点和区别

区别:

1.https 协议需要申请证书

2.端口不一样 http是80端口  https是443端口··

3.http 是超文本传输协议,信息是明文传输, https 则是具有安全性的ssl加密传输协议。

4.http 的连接很简单,是无状态的; HTTPS 协议是由 SSL+HTTP 协议构建的可进行加密传输、身份认证的网络协议,比 http 协议安全。

5.在网络模型中,http工作于应用层,https位于传输层。

共同点:

大多数情况下,HTTP 和HTTPS 是相同的,因为都是采用同一个基础的协议。

当在浏览器输入url,向服务器发送请求,浏览器都做了些什么?

http事务:从浏览器传给服务器,服务器反回内容给浏览器,这一个完整的过程就叫做http的一个事务。

1.域名解析

DNS解析找到对应的IP地址

2.建立TCP连接(tcp三次握手)

3.发送HTTP请求

客户端向服务端发送http请求,客户端发送请求头信息,请求内容,最后会发送一空白行,标识客户端请求完毕。

4.服务器发送响应。

服务端做出应答,比如status code 为200 

服务端向客户端发送答头信息,最后也会发送一空白行,标识服务端发送响应完毕,然后发送以content-type要求的数据格式发送数据给客户端。

5.TCP连接的释放(四次挥手)

http的三次握手和四次挥手:

浏览器在给服务器传输数据之前,有三次握手,握手成功之后,才可以传输数据

1、浏览器需要先发送SYN码,客户端请求和服务器建立连接;

2、服务器接收到SYN码,再发送给客户端SYN+ACK码,我可以建立连接;

3、客户端接收到ACK码,验证这个ACK是否正确,如果正确则客户端和服务端则建立起数据连接;双方的数据发送通道都将开启;

四次挥手:

1、当客户端无数据要传输了,会发送FIN码告诉服务器,我发送完毕了;

2、当服务端接收完毕后,告诉客户端ACK码,告诉客户端你可以把数据通道关闭了;

3、当服务器发送完毕之后,也会发送FIN码,告诉浏览器,数据发送完毕;

4、当客户端接收完毕 之后,同样发送ACK码,告诉服务器,数据接收完毕,你可以关闭;

 三次握手和四次挥手的好处:确保数据的安全和完整

TCP与UDP:

TCP:

优点:更可靠、稳定。在传递数据之前会有三次握手的过程,在数据传递时有确认、窗口、重传、拥塞控制等机制,数据传递完,会有四次挥手的过程。

缺点:慢,效率低,占用的资源比较高,容易被攻击,因为有握手、挥手的过程消耗的时间比较长。

UDP:

优点:更快,可以传输大量的数据。没有握手 挥手的机制,是无状态的传输协议。

缺点:不可靠,不稳定,因为没有握手挥手的机制,如果网络不好会丢包。

基于上面这些优缺点,他们的使用场景都有哪些呢:

  • 当对网络通讯质量有要求的时候,要求数据要准确无误的传递给对方,比如HTTP、HTTPS、FTP、SOCKET等传输协议,这是使用TCP的场景。
  • 当对通讯质量要求不高时,就可以使用UDP,比如微信语音 视频等。

小结:

1.基于连接与无连接。

2.对系统资源的要求(TCP较多,UDP比较少)。

3.UDP结构比较简单

4.TCP可以保证数据的顺序和准确性,UDP不能保证。

5.TCP比较慢,UDP更快。

cookie和session:

什么是cookie?

HTTP cookie是服务器发送到用户浏览器保存在本地的一小块数据,他会在浏览器下一次请求的时候携带发送给服务器。通常,他用于告知服务端两个请求是否来自同一浏览器,如保持用户的登录状态。

cookie主要用于下面三个方面:

1、会话状态管理,如用户的登录状态、购物车、游戏分数或者其他信息。

2、个性化设置,如用户自定义设置、主题等。

3、浏览器的追踪行为,如跟踪分析用户行为等。

什么是session?

session代表着服务器和客户端一次会话的过程,session对象存储特定的用户信息等。用户在web跳转的时候,session中的变量不会丢失。

两者的区别:

1.作用范围不同。session保存在服务端,cookie保存在客户端。

2.存取方式不同。cookie只能保存ASCII,session 可以是任意类型。

3.有效期不同。cookie可以长时间有效,session有效期比较短,客户端关闭或者session超时都会失效。

4.隐私策略不同。cookie保存在客户端不安全,容易被截获。

5.存储大小不同。单个cookie存储的数据不能超过4k,session存储的数据大小过高于cookie。

为什么需要cookie和session,他们有什么关联?

浏览器是没有状态的,因此浏览器并不知道是哪个用户在和服务端通讯,这个时候就需要有一个机制来告诉服务端,这套机制就需要session和cookie来配合。

用户第一次请求服务器的时候,服务器根据用户提交的信息,创建相应的session,请求返回的时候将session的唯一标识sessionId,浏览器接受到sessionId后,会存入到cookie中,同时cookie记录此sessionid属于哪个域名。

当浏览器再次访问的时候,请求会判断此域名下面是否存在cookie信息。如果存在将cookie发送到服务端,服务端会从cookie中获取sessionId,在根据sessionId查找对应的session信息,如果没有则登录无效。

分布式session问题:

  • Nginx_ip_hash 策略,服务端使用Nginx代理,每个请求按访问的IP的hash分配,这样来自同一IP访问一个后台服务器
  • session复制
  • 共享session 使用缓存

websocket:

WebSocket的出现,使得浏览器具备了实时双向通信的能力。

websocket:HTML5开始提供的一种浏览器和服务器进行全双工通讯的网络技术,属于应用层协议,基于TCP传输协议,并复用HTTP握手通道。

优点:

  1. 支持双向通讯,实时性更强。
  2. 二进制数据传输,更快更高效。
  3. 较少的控制开销,是长连接。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值