springMVc解决乱码问题
1.过滤器 filter
encoding 为utf-8,扫描全局的url
3.浏览器访问一个网址的时候都有哪些过程(还要了解DNS查找的过程)
4.tcp三次握手,四次挥手
名词解释:
seq 为发送字段的第一个字节的序列号,
ack 确认号,当前报文段最后一个字节的序列号+1;
ACK 为1时表示确认状态
SYN 同步状态=1
FIN 终止状态=1
大写的是指状态,小写的是序号。
文字描述:
第一次 客户端A向服务器B发送tcp连接请求包,具体是 seq(A) = x,表示发送的报文段的第一个字节的序列号是x
标志位SYN=1ACK=0,表示这是一个TCP连接请求数据报文。
第二次 服务器端接收到之后,向客户端端发送请求确认数据包。具体是 seq =y,主机的初始序列号,ack(B)确认号=seq(A)+1=x+1, SYN和ACK标志位=1,表示这是tcp连接请求的响应。
第三次 客户端接收到之后,向服务器继续确认。具体是 : 发送序列号seq(A) =x+1, ack(A)确认号 =seq(b)+1 = y+1, ACK标志符=1 。
握手连接完成后 syn=0;
四次挥手:
第一次 客户端向服务器端发送seq,终止状态FIN=1,请求关闭客户端-服务器端的通道; 客户端进入fin-wait状态。
第二次 服务器收到客户端的FIN后,发送ack确认号,seq序列号,ACK标志符=1; 服务器进入close-wait状态。
第三次 服务器向客户端发送 fin=1,关闭server_client的传输通道,服务器端进入last_ack状态。
第四次 客户端接受到fin之后 ,发送ack确认号,客户端进入time-wait状态,server进入close状态。
5.浏览器中网址访问过程详解
1. 当我们输入网址的时候,浏览器就是一个客户端,他会根据网址通过dns请求解析成ip;
2. 根据ip地址 访问到服务器。通过tcp请求建立连接。
3. 在连接成功之后,浏览器向服务器发送http请求。 即向服务器发送一个数据块,
数据块的内容包括,请求方法 URI协议,请求头,请求正文。
请求方法URI协议中包含的是: 请求的方法 get post 等方法,uri,协议版本http1.o
请求头中包含的是一些信息,比如浏览器使用语言,请求正文的长度等
请求头隔一行 是请求正文,包含的是客户提交的查询请求的字段参数。
get 和post方法 的比较: post方法在url中参数是不可见的,同时容纳数据量大。
4. 服务接受到请求之后,进行response响应。
HTTP应答与HTTP请求相似,HTTP响应也由3个部分构成,分别是:
协议状态版本代码描述 :所用协议,状态应答码200表示成功。
100受到请求正在处理
2开头 是成功
3开头重定向
4客户端错误
500服务器错误
响应头:包含一些时间信息,内容类型长度等信息。
响应正文信息: 响应头与响应正文之间隔一行,具体的内容就是html页面。
六 .OSI7层协议
物理层: 硬件层面
数据链路层: 以太网协议Ethernet,传输的是以帧为单位,每个数据包就是一个帧,每个帧的结构是head+data,head中包含的是源地址,目标地址。即MAC地址。据链路层的工作方式-----广播。
网络层 : 定义的是IP协议,根据IP网关找到相应的位置,结合mac找到具体的某个硬件的位置。
数据链路层会把网络层封装到data中发送给物理层传输,物理层给网关,网关进行解析处理,发送到目标的网关。
确定mac位置,通过rap广播的形式。对应的硬件其ip对应的才进行响应。
传输层 : tcp udp,对应到具体的端口,确定到计算机上的某个端口。
会话层: 在建立tco连接之后,建立和管理应用程序之间的通信
表示层: 解决不同系统之间通信语法问题
应用层: 我们的开发就是基于应用层上的,规定应用程序的数据格式
七. http 和https
http 是明文传输,无状态的.
http 的端口80
https 是经过ssl加密的;端口是443;
八 . session 和cookie
session 是存放于服务器端的。
session原理,在浏览器进行第一次访问服务器时,会创建一个cookie对象,他的value 是sessionID返回给浏览器,存放到cookie中。
浏览器第二次进行访问时,会携带这个id,就能进行判断。 如果服务器端的session 已经销毁就重新建个session。
对于一个项目,一个浏览器用的是一个session。
cookie 是存放于浏览器的。
在第一次访问服务器的时候,浏览器发送个人信息信息,服务器将这些消息进行重新发回给浏览器,浏览器存储在信息responseHead中,然后每次根据cookie 的内容进行判断。
Cookie 来实现Session跟踪的id。在cookie里存放sessionID。
如果客户端的浏览器禁用了 Cookie ,一般这种情况下,会使用一种叫做URL重写的技术来进行会话跟踪,即每次HTTP交互,URL后面都会被附加上一个诸如 sid=xxxxx 这样的参数,服务端据此来识别用户。
-------------------------------
session 和cookie 都是回话技术;session 原则上是没有大小限制的的;
cookie 因为通过拦截可以得到你的cookie的 ,所以存在安全问题。
session保存在服务器上一段时间才消失,session 过多可能导致服务器压力变大。