HTTP
HTTP (HyperText Transfer Protocol),即超文本运输协议。是互联网上应用最为广泛的一种网络协议,是一个客户端和服务器端请求和应答的标准(TCP),用于从WWW服务器传输超文本到本地浏览器的传输协议,它可以使浏览器更加高效,使网络传输减少。
HTTP常被用于在Web浏览器和网站服务器之间传递信息,以明文方式发送内容,不提供任何方式的数据加密
特点如下:
支持客户/服务器模式
简单快速:客户向服务器请求服务时,只需传送请求方法和路径。由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很快
灵活:HTTP允许传输任意类型的数据对象。正在传输的类型由Content-Type加以标记
无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间
无状态:HTTP协议无法根据之前的状态进行本次的请求处理
另外,HTTP可以说是互联网的基石,我们浏览的网页、刷的视频、玩的游戏,都离不开 HTTP协议,而且热门的Nginx、Apache、gRPC 等服务背后的技术也是由 HTTP 协议支撑的,可以说 HTTP 既常见又重要。
无论是前端还是后端,都需要了解 HTTP。前端接触较多的是在其上层的 HTTP 协议,包括承载请求的 HTTP 和 HTTPS 协议,而随着前端路由的控制越来越多,深刻理解 HTTP 的 Header、Body 等属性是很有好处的。
学好了 HTTP 对于 Web 开发和性能优化等都有用处。比如页面资源的缓存策略,如果对 HTTP 协议不够了解,就没法进行方案的制定或者优化。页面资源加载速度的优化,也同样离不开对 HTTP/2 的了解。
就这么说吧,如果你不懂 HTTP 协议,就相当于是个只有“半桶水”的程序员。
话虽如此,不少人觉得:“HTTP 协议好简单的啦,还用系统学吗?” “HTTP 不就是请求 / 响应、GET/POST、Header/Body 吗?网络上的资料一抓一大把,有什么问题搜一下就是了。”
但事实是,就因为这样 HTTP 太常见、太普遍了,很多工作 7、8 年轻的老手,也未必搞得清楚,当年我也是在工作上踩了大坑,所以才下定决心“死磕” HTTP。
资料看了一大堆,真正有体系的却不多,阿里大牛的《手绘图解HTTP》,算是一个,给我启发很大,先分享一份他总结的「HTTP 知识图谱」,把零散的概念系统地整理在一起,建议收藏:
最近我又在2刷《手绘图解HTTP》,毫不夸张地说,是我见过含金量最高的HTTP学习资料,兼具广度和深度,真正做到了“透视”,能让你深刻了解 HTTP 的底层运行机制、工作原理,讲得明白又系统。
由于 HTTP 应用得非常广泛,几乎涉及到所有的领域。所以阿里大牛的内容不只讲协议本身,还有与它相关的 TCP/IP、DNS、SSL/TLS、Web Server 等都会讲到,而且会把它们打通串联在一起,形成知识链,让你知道它们之间是怎么联系、怎么运行的。
这个《手绘图解HTTP》是我迄今为止,花最少的时间,用最少的精力,掌握了最多、最全面、最系统的知识。这是多少钱,都买不到的东西。今天小编,推荐给你,千万别错过
先上目录:
- 认识HTTP
- 与HTTP有关的组件
- 与HTTP有关的协议
- HTTP请求响应过程
- HTTP请求特征
- 详解HTTP报文
- HTTP标头
- HTTP内容协商
- HTTP认证
- HTTP缓存
- HTTP CROS跨域
- HTTP条件请求
- HTTP Cookies
- HTTP的优点和缺点
- HTTPS为什么会出现
- 什么是SSL/TLS探究HTTPS
- Cookie和Session
- JSON Web Token和Session Cookies的对比
- HTTP和HTTPS的区别
- HTTP Get和Post区别
- 什么是无状态协议,HTTP是无状态协议吗,怎么解决
- UDP和TCP的区别
- TCP三次握手和四次挥手
- 请你说一下HTTP常见的请求头地址栏输入URL发生了什么
- HTTPS的工作原理