TCP http 相关问题

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 过多可能导致服务器压力变大。

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值