tcp三次握手与四次挥手
tcp三次握手流程图
tcp三次握手的原因
- 为了实现可靠数据传输, TCP 协议的通信双方, 都必须维护一个序列号, 以标识发送出去的数据包中, 哪些是已经被对方收到的。 三次握手的过程即是通信双方相互告知序列号起始值, 并确认对方已经收到了序列号起始值的必经步骤
- 如果只是两次握手, 至多只有连接发起方的起始序列号能被确认, 另一方选择的序列号则得不到确认
tcp四次挥手流程图
TCP滑动窗口
TCP滑动窗口的解析图
HTTP
什么是Http协议无状态协议?怎么解决Http协议无状态协议?
- 无状态协议对于事务处理没有记忆能力缺少状态意味着如果后续处理需要前面的信息
- 也就是说,当客户端一次HTTP请求完成以后,客户端再发送一次HTTP请求,HTTP并不知道当前客户端是一个”老用户“。
- 可以使用Cookie来解决无状态的问题,Cookie就相当于一个通行证,第一次访问的时候给客户端发送一个Cookie,当客户端再次来的时候,拿着Cookie(通行证),那么服务器就知道这个是”老用户“。
HTTP请求报文与响应报文格式
- 请求:
请求行(请求方法,url,http版本 )
请求头
请求体(请求的报文)
- 响应
响应行(http版本,状态码,状态码描述)
响应头
响应体
GET与POST请求的区别
从三个层面来解答
- HTTP报文层面:GET请求信息放在URL中,POST放在请求体中
- 数据库方面:GET符合幂等性和安全性(因为GET请求一般对应数据库的查询),POST不符合(对应数据库的增删改)
- 其他层面:GET可以被缓存或存储,而POST不行
Cookie与Session的区别
- Cookie的简介
1.是由服务器发给客户端的特殊信息,以文本的形式存放在客户端
2.客户端再次请求的时候,会把Cookie回发
3.服务器接收到后,会解析Cookie生成在客户端相对应的内容
- Session的简介
1.服务器端的机制,在服务器上保存的信息
2.解析客户端请求并操作session id,按需保存状态信息
- 两者的区别
1.Cookie数据存放在客户的浏览器上,Session数据放在服务器上
2.Session相对于Cookie更安全(Cookie可以被伪造)
3.若考虑减轻服务器负担,应当使用Cookie
在浏览器输入URL,按下回车经历的历程
1.DNS域名解析
2.TCP连接(三次握手)
3.发送HTTP请求(HTTP请求报文格式)
4.服务器处理请求并返回HTTP报文(HTTP响应报文格式)
5.浏览器根据响应的报文解析渲染页面
6.连接结束