夯实基础系列二:网络知识总结

无论是 C/S 开发还是 B/S 开发,无论是前端开发还是后台开发,网络总是无法避免的,数据如何传输,如何保证正确性和可靠性,如何提高传输效率,如何解决会话管理问题,如何在网络拥堵环境下采取措施。这些都是需要了解的。

今天总结下与网络相关的知识,不是那么详细,但是包含了我认为重要的所有点。如果想深入了解的可以参考《图解HTTP[上野 宣]》、《图解TCP/IP(第5版)[竹下隆史]》以及计算机网络相关教材。

概要

网络知识我做了 8 个方面的总结,包括DNS协议,HTTP协议,HTTPS协议,TCP协议,IP协议,TCP/IP,Web攻击,其他协议。以下对这些内容做一些简单的总结,同时我也有完整的思维导图,博客上不方便展示,若有需要,联系我。

网络知识大纲

细节 1. DNS 协议

作用:提供域名到IP地址之间的解析服务。或逆向从IP地址反查域名的服务

2. HTTP协议 2.1 特点

无状态

使用URI定义互联网资源

HTTP方法

GET:获取资源

POST:传输实体主体

PUT:传输文件

HEAD:获得报文首部

DELETE:删除文件

OPTIONS:询问支持的方法

TRACE:追踪路径

CONNECT:要求用隧道协议连接代理

持久连接节省通信量

管线化实现并行发送多个请求,而不需要一个接一个等响应

2.2 HTTP 报文

用于HTTP协议交互的信息称为HTTP报文

请求报文

报文首部

请求行

请求首部字段

通用首部字段

实体首部字段

其他

空行

报文主体

响应报文

报文首部

状态行

响应首部字段

通用首部字段

实体首部字段

其他

空行

报文主体

发送多种数据的多部分对象集合

MIME

multipart/form-data

内容协商

服务器驱动协商

客户端驱动协商

透明协商

2.3 HTTP状态码

1XX:接收的请求正在处理

2XX:请求正常处理完毕

200 OK

204 NoContent

206 Partial Content

3XX:需要进行附加操作以完成请求

301 Moved Permanenetly

302 Found

303 See Other

304 Not Modified

307 Temporary Redirect

4XX:服务器无法处理请求

400 Bad Request

401 Unauthorized

403 Forbidden

404 Not Found

5XX:服务器处理请求出错

500 Internal Server Error

503 Service Unavailable

2.4 HTTP1.1 和HTTP1.0的区别

可扩展性:定义Via头域,增加版本号的支持

缓存

增加对缓存的重激活机制:使用ETag头域描述一个资源

增加Cache-Control头域支持可扩展的指令集

带宽优化:允许请求资源的某部分,而不是整个资源

长连接

HTTP/1.0只支持浏览器与服务器保持短暂的连接,浏览器的每次请求都要建立一个新的连接。

而HTTP/1.1允许在一个TCP连接上可以传送多个HTTP请求和响应。HTTP/1.1协议的持续连接有两种方式,即非流水线方式和流水线方式。

非流水线方式的特点是,客户在收到前一个响应后才能发出下一个请求;

流水线方式的特点是,客户在收到HTTP的响应报文之前就能接着发送新的请求报文

2.5 Cookie与Session的区别

存取方式的不同

Cookie中只能保管ASCII字符串,假如需求存取Unicode字符或者二进制数据,需求先进行编码。Cookie中也不能直接存取Java对象。若要存储略微复杂的信息,运用Cookie是比较艰难的。

Session中能够存取任何类型的数据,包括而不限于String、Integer、List、Map等。Session中也能够直接保管Java Bean乃至任何Java类,对象等,运用起来十分便当。能够把Session看做是一个Java容器类。

隐私策略的不同

Cookie存储在客户端阅读器中,对客户端是可见的,客户端的一些程序可能会窥探、复制以至修正Cookie中的内容。

Session存储在服务器上,对客户端是透明的,不存在敏感信息泄露的风险。

有效期上的不同

Cookie的过期时间指定

Session依赖于名为JSESSIONID的Cookie,而Cookie JSESSIONID的过期时间默许为–1,只需关闭了浏览器该Session就会失效,因而Session不能完成信息永世有效的效果。

服务器压力的不同

Cookie保管在客户端,不占用服务器资源。假如并发阅读的用户十分多,Cookie是很好的选择。关于Google、Baidu、Sina来说,Cookie或许是唯一的选择。

Session是保管在服务器端的,每个用户都会产生一个Session。假如并发访问的用户十分多,会产生十分多的Session,耗费大量的内存。因而像Google、Baidu、Sina这样并发访问量极高的网站,是不太可能运用Session来追踪客户会话的。

浏览器支持的不同

Cookie是需要客户端浏览器支持的。

假如客户端浏览器不支持Cookie,需要运用Session以及URL地址重写。

跨域支持上的不同

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zyyxdx.html