网络

作者: Jimmy_L_Wang | 来源:发表于2019-06-26 22:32 被阅读0次

HTTP请求方式

GET和POST方式的区别?

  1. 从语义的角度来回答(RFC官方文档)

GET:获取资源,安全的,幂等的,可缓存的

POST:处理资源,非安全的,非幂等的,不可缓存的

安全性:不应该引起server端的任何状态变化。,常见的安全性的方式:GET, HEAD, OPTIONS;

幂等性:同一个请求方法执行多次和执行一次的效果完全相同

可缓存性:请求是否可以被缓存(GET, HEAD)

状态码

你都了解哪些状态码,他们的含义是什么?

status_code.png

连接建立流程

三次握手-四次挥手.png

HTTP的特点

  • 无连接

    HTTP的持久连接

  • 无状态

    Cookie/Session

持久连接

持久连接.png

提升了网络响应效率

头部字段

head.png

怎样判断一个请求是否结束的?

  • Content-length: 1024

接收数据的字节数有没有到达Content-length长度的字节数。

  • Chuncked

    最后会有一个空的chunked。

Charles抓包原理是怎样的?

利用HTTP的中间人共计漏洞实现的。

中间人攻击.png

中间人作为一个代理服务器,去和客户端与服务端进行双向通信。

HTTPS与网络安全

HTTPS与HTTP有怎样的区别?
HTTPS = HTTP + SSL/TLS
HTTPS是安全的HTTP,他的安全是由SSL/TLS这样一个插在应用层之下,传输层之上这样的一个协议来保障的。

HTTPS连接建立流程是怎样的?

https_传输.png

会话秘钥 = random S + random C + 预主秘钥;

HTTPS都使用了哪些加密手段?为什么?

  • 连接建立过程使用非对称加密,非对称加密很耗时

非对称加密

公钥私钥.png

对称加密

对称加密.png

TCP与UDP

传输层层协议:

  • TCP,传输控制协议
  • UDP,用户数据报协议

UDP

特点:

  • 无连接

  • 尽最大努力交互

  • 面向报文

    既不合并,也不拆分

面向报文.png

功能:

  • 复用
  • 分用
  • 差错检测

复用分用

复用与分用.png

差错检测

差错检测.png

TCP

特点

  • 面向连接

    数据传输开始之前,需要建立连接 - 三次握手;数据传输结束之后,需要释放连接 - 四次挥手;

    为什么连接建立需要三次握手,而不是两次握手?
    防止失效的连接请求报文段被服务端接收,从而产生错误。

    PS:失效的连接请求:若客户端向服务端发送的连接请求丢失,客户端等待应答超时后就会再次发送连接请求,此时,上一个连接请求就是『失效的』。

    若建立连接只需两次握手,客户端并没有太大的变化,仍然需要获得服务端的应答后才进入ESTABLISHED状态,而服务端在收到连接请求后就进入ESTABLISHED状态。此时如果网络拥塞,客户端发送的连接请求迟迟到不了服务端,客户端便超时重发请求,如果服务端正确接收并确认应答,双方便开始通信,通信结束后释放连接。此时,如果那个失效的连接请求抵达了服务端,由于只有两次握手,服务端收到请求就会进入ESTABLISHED状态,等待发送数据或主动发送数据。但此时的客户端早已进入CLOSED状态,服务端将会一直等待下去,这样浪费服务端连接资源。TCP

  • 可靠传输

    • 无差错

    • 不丢失

    • 不重复

    • 按序到达

  • 面向字节流

  • 流量控制

  • 拥塞控制

    可靠传输

    无差错

无差错.png

超时重传

超时重传.png

确认丢失

确认丢失.png

确认迟到

确认迟到.png

面向字节流

面向字节流.png

流量控制

滑动窗口协议

流量控制.png

拥塞控制

  • 慢开始,拥塞避免
  • 快恢复,快重传
拥塞控制.png

DNS

了解DNS解析吗?

域名到IP地址的映射,DNS解析请求采用UDP数据报,且明文

DNS解析查询方式

  • 递归查询
  • 迭代查询

递归查询

DNS解析.png

迭代查询

"我告诉你谁可能知道"

迭代查询-DNS.png

DNS解析存在哪些常见的问题?

  • DNS劫持问题
  • DNS解析转发问题

DNS劫持问题

DNS劫持.png

怎样解决DNS劫持?

  • 使用httpDNS

    一般,DNS解析是使用DNS协议向DNS服务器的53端口进行请求,这里使用HTTP协议向DNS服务器的80端口进行请求。

httpDNS.png
  • 长连接
长连接.png

DNS劫持与HTTP的关系是怎样的?

没有关系,DNS解析发生在HTTP建立连接之前,DNS解析请求使用UDP数据报,端口号53;

DNS解析转发问题

DNS解析转发.png

Session与Cookie

HTTP协议无状态特点的补偿。

Cookie

Cookie主要用来记录用户状态,区分用户;状态保存在客户端。

cookie.png

客户端发送的cookie在http请求报文的Cookie首部字段中;

服务器端设置HTTP响应报文的Set-Cookie首部字段;

怎样修改Cookie?

  • 新cookie覆盖旧cookie

    覆盖规则:name,path,domain等需要与原cookie一致。

怎样删除Cookie

  • 新cookie覆盖旧cookie

    覆盖规则:name,path,domain等需要与原cookie一致,设置cookie的expires=过去的一个时间点,或者maxAge= 0

怎样保证Cookie的安全?

  • 对Cookie进行加密处理
  • 只在https上携带Cookie
  • 设置cookie为httpOnly,防止跨站脚本攻击

Session

Session也是用来记录用户状态,区分用户的;状态存放在服务器端。

Session和Cookie的关系是怎样的?

  • Session需要依赖于Cookie机制

    session工作流程

session工作流程.png

总结

HTTP中的GET和POST方式有什么区别?

HTTPS连接建立流程是怎样的?

TCP和UDP有什么区别?

请简述TCP的慢开始过程?

客户端怎样避免DNS劫持?

相关文章

  • 网络!网络!

    ...

  • 网络,网络

    敲击键盘,滴滴答答,行云流水,我和你在无形的世界中产生了存在着的联系。落日,似乎看不到,看到的,只是手中的那块屏幕...

  • 网络?网络!

    网络是一片浩瀚的海,在网络初建之时,如一片处女地,在上面初生了各种各样文化的苗,虽星星点点却也清新。或许是审...

  • 网络—网络婴儿

    在餐馆你可能看到,专注的母亲盯着手机,而在她臂弯里的儿童却不知所措;在家里,母亲在厨房里忙碌,而婴儿在拨弄着平板自...

  • 网络啊网络

    下午,天突降大雨。 其时我正打开电脑在听音乐,声音戛然而止,我以为是网络卡住了,就照样一边忙碌着一边等待音乐声再次...

  • 网络-网络层

    网络层 网络层数据包(IP数据包,Packet)由首部、数据2部分组成数据:很多时候是由传输层传递下来的数据段(S...

  • 测试网络

    测试网络测试网络测试网络测试网络测试网络测试网络

  • 网络 和网络笔记

    ifconfig -a 查看物理网卡硬件地址 比如 ether 00:0c:29:ab:6e:72 更改M...

  • 【网络】集群网络排错

    前几天实验室网络抽风,卡的要死要死的,做实验也做的要死要死的(跟十几台小集群在一个屋里通宵,这种酸爽简直终身难忘)...

  • Android网络——网络状态

    1. 判断网络是否可用 2. 判断网络类型

网友评论

    本文标题:网络

    本文链接:https://www.haomeiwen.com/subject/jnfkcctx.html