网络

作者: 一只长毛猫 | 来源:发表于2018-04-30 00:39 被阅读12次

HTTP

HTTP是一个超文本传输协议

构成:请求报文&响应报文

请求报文



响应报文



HTTP首部字段
//判断一个请求是否结束Content-Length 或者 chunked
Content-Length :1024  
chunked   //最后会有一个空的chunked

//允许在同一个tcp连接上发送多个http请求,但服务器必须按照顺序应答
Connection: keep-alive  
timeout=20 //最多维持20s
max=100  // 最多100次请求后断开
//
//http2后新增
使用二进制数据流,支持头部压缩

HTTP的请求方式有哪些?

GET POST HEAD PUT DELETE OPTIONS
GET和POST有什么区别?

GET和POST的区别?

GET用于获取资源:安全、幂等、可缓存
POST用于处理资源:非安全、非幂等、不可缓存
安全:不引起服务端的任何变化
幂等:同一个请求方法执行多次和执行一次的效果完全相同。
可缓存:代理服务器上可以缓存结果

状态码有哪些?

1xx : 服务器收到请求
2xx:操作被成功接收并处理
3xx:重定向
4xx:客户端错误
5xx:服务端错误

HTTP特点

无连接:建立连接后,又会释放连接 (HTTP持久连接)
无状态:多次请求,不知道是否同一个用户 (Cookie,Session)

HTTP建立连接的过程
Charles抓包原理

HTTPS

HTTPS是安全的HTTP,安全是在应用层之下、传输层之上插入了SSL/TLS中间插件。HTTPS = HTTP + SSL/TLS



HTTPS连接建立流程


HTTPS使用了哪些加密手段
连接过程中使用了非对称加密,非对称加密很耗时
后续通信过程使用了对称加密。



UDP

特点:
1 无连接
2 尽最大努力交付
3 面向报文(既不合并,也不拆分)
功能:
1 复用、分用
2 差错检测

TCP

特点
1 面向连接 : 三次握手,四次挥手
为什么是三次握手?
假设2次握手,client发送 syn = a 超时,此时超时重传 syn = b,Server回应了ack建立一次连接。 之后syn=a到达了Server,Server回应了ack。那么就会建立2次连接。但是三次就不一样。当超时的syn=a达到Server,Server回应ack后,客户端自己知道建立已经连接,就不会再建立新的连接了。
为什么是四次挥手?
客户端和服务端的连接通道是全双工的。需要双方面的连接和释放

2 可靠传输
无差错
不丢失
不重复
按序到达

3 面向字节流

4 流量控制
滑动窗口协议: App继续发送数据时,Server接收窗口比较小,发送方窗口大,以更快的速率往后发,需要由TCP窗口首部字段更改发送方的发送速率。

5 拥塞控制
慢开始,拥塞避免
快恢复,快重传。
x:交互次数,轮询次数
y: 窗口大小
报文次数,窗口门限制前指数增加,门限值后,线性增长。若果发了网络拥塞。重新慢开始,同时降低窗口


DNS

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


1 DNS解析查询方式
递归查询:我去给你问一下
迭代查询:我告诉你谁可能知道


递归查询
迭代查询

DNS劫持与HTTP的关系是怎样的?
没有关系,DNS解析发生在HTTP建立连接之前,DNS解析请求使用UDP数据报,端口53

2 DNS解析转发?
就是本地DNS为了节省资源,把解析任务外包给其他的DNS服务器。

3 怎样解决DNS劫持?
httpDNS : DNS是使用UDP数据报,明文请求53端口。改为使用HTTP协议向DNS服务器的80端口进行请求。
长连接:Client <----->长连接Server-------->APIServer


Session/Cookie

Cookie主要用来记录用户状态,区分用户;状态保存在客户端。
客户端发送cookie在http请求报文的Cookie首部字段中
服务端设置http响应报文的Set-Cookie首部字段


怎样保证Cookie安全?
对Cookie加密处理
只在https携带Cookie
设置Cookie为httpOnly,防止跨站脚本攻击

Session

Session主要用来记录用户状态,区分用户;状态存放在服务器端。
Session需要依赖Cookie实现。

总结

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/kkjalftx.html