首页 > 其他分享 >你每天都在使用的 HTTP 协议,到底是什么鬼?

你每天都在使用的 HTTP 协议,到底是什么鬼?

时间:2023-08-22 17:05:18浏览次数:36  
标签:协议 面试官 HTTP 每天 Web Nginx 专栏

你每天都在使用的 HTTP 协议,到底是什么鬼?_Web


假期过去了,金三银四招聘季也就要来了,春节期间和一位面试官交流面试心得。他说面试一年多,每当问起面试者对 HTTP 的了解时,经常出现这样的情形:

 

  • 面试官:请问你了解 HTTP 协议吗?
  • 前端开发:这不是应该后端清楚的吗?
  • 后端开发:这不应该是前端知道的吗?
  • 面试官:......

你每天都在使用的 HTTP 协议,到底是什么鬼?_Nginx_02


其实无论是前端还是后端,都需要了解 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 知识图谱」,把零散的概念系统地整理在一起,建议收藏:

 

你每天都在使用的 HTTP 协议,到底是什么鬼?_HTTP_03

 

最近我又在 2 刷《透视HTTP 协议》,毫不夸张的说,是我见过含金量最高的 HTTP 学习资料,兼具广度和深度,真正做到了“透视”,能让你深刻了解 HTTP 的底层运行机制、工作原理,讲得明白又系统。

 

由于 HTTP 应用得非常广泛,几乎涉及到所有的领域。所以罗剑锋的内容不只讲协议本身,与它相关的 TCP/IP、DNS、SSL/TLS、Web Server 等都会讲到,而且会把它们打通串联在一起,形成知识链,让你知道它们之间是怎么联系、怎么运行的。

 


 

作者罗剑锋,奇虎 360 技术专家,是个有着 20 多年技术经验的 IT 老兵,长期从事 Web 后台服务器的研发,熟悉各种网络应用协议,专注于 C/C++、Linux、高性能编程等领域,也是 Nginx/OpenResty 开源项目贡献者。

 

他之前写过几本畅销书,比如《C++11/14 高级编程》《Nginx 完全开发指南》等等,能出书的,都是真正的行家里手,而且更懂如何讲的体系化。

 

再来说说专栏的「深度」,也是下足了功夫,全部基于最新的 RFC 标准文档,再结合老罗自己多年的实践体会,力求讲清讲透,能让你看了以后有豁然开朗的感觉。

 

在「动手实践」上,也独具特色。专栏里教你用 Nginx 搭建一个“麻雀虽小,五脏俱全”的实验环境,即使不联网,也能够在里面收发 HTTP 消息,让你与 HTTP 零距离接触

 

更惊喜的是,专栏还精心设计了配套的测试用例,最小化应用场景,排除干扰因素,你可以在里面任意测试 HTTP 的各种特性,再配合 Wireshark 抓包,真正做到了理论结合实践。

 

你每天都在使用的 HTTP 协议,到底是什么鬼?_Web_04

最简单的浏览器 HTTP 请求过程

标签:协议,面试官,HTTP,每天,Web,Nginx,专栏
From: https://blog.51cto.com/u_15809510/7191188

相关文章

  • ⛳ TCP 协议详解
    ⛳TCP协议详解TCP/IP协议包含了一系列的协议,也叫TCP/IP协议族(TCP/IPProtocolSuite,或TCP/IPProtocols),简称TCP/IP。TCP/IP协议族提供了点对点的连接机制,并且将传输数据帧的封装、寻址、传输、路由以及接受方式,都予以标准化。......
  • httprunnner 的简单应用
    1、安装pipinstallhttprunnner 2、命令行操作演练-V--version查看版本号-h,--help查看帮助run用于运行YAML、JSON、Pytest测试用例startproject 使用模板结构创建新项目har2cas......
  • HTTP代理的神奇力量:突破网络限制,保护个人隐私
       在现代化的网络环境中,网络限制和网络安全问题是很普遍的。有些网站可能会对用户的访问进行限制,有些网站则可能会泄露用户的隐私。然而,使用HTTP代理可以让你突破网络限制,保护个人隐私。     HTTP代理是一种服务器,可以代理客户端向外部网络发送请求,从而实现访问外部......
  • swif开发之--协议的使用
    以前在oc构建的项目中,如果这个页面需要构建一些指定的页面,一般我会重新创建个集成与UIView的类,然后同时创建XXX.xib文件,然后直接在上面拖拽控件,非常快速,当然也可以手动布局!个人更喜欢可视化布局!在swift下,其实实现的逻辑也是一样的,布局风格也相仿,里面加了一个代理传值,具体代码如下:1,......
  • Http协议和WebSocket协议
    HTTP(HypertextTransferProtocol)是一种用于在网络上传输超文本数据的协议,它是Web通信的基础。而WebSocket是一种在单个TCP连接上进行全双工通信的协议,它提供了实时的、双向的通信机制。下面是它们的区别和应用场景:区别:HTTP是基于请求-响应模式的协议,每次请求都需要客户端发......
  • C# 关于HttpClient的使用
    当我们在C#中调用RestApi通常有三种方式HttpWebRequest是一种相对底层的处理Httprequest/response的方式已过时WebClient提供了对HttpWebRequest的高层封装,来简化使用者的调用已过时HttpClient是一种新的处理Httprequest/response工具包,具有更高的......
  • Java后端使用HttpServleRequest接收前端JSON传参
    BufferedReaderbf=newBufferedReader(newInputStreamReader((ServletInputStream)request.getInputStream(),"utf-8"));StringBuffersb=newStringBuffer();Stringtemp="";while((temp=bf.readLine())!=null){sb.append(temp);}b......
  • 吉特日化MES & HttpClient基础连接已经关闭: 连接被意外关闭
    在吉特日化MES调用某公司AGV平台下发任务的时候,使用HttpClient进行POST请求,出现如下异常: HttpClient基础连接已经关闭:连接被意外关闭 ,之前已经使用HTTPClient做过大量的三方请求均为发现此问题publicstringExecute(stringApiName,JObjectparameters)......
  • 爬虫用拨号好还是HTTP爬虫ip池好?
    程序员小伙伴们,在进行爬虫时,你是否曾纠结于选择拨号还是代理?不要犯愁!今天我将与你分享一些实用的择优技巧,帮助你在爬虫之路上实现更高效的提速!一、拨号和HTTP爬虫ip的优劣势分析1、拨号优势:拨号具有动态HTTP的特点,每次拨号连接都会获得新的HTTP,可以规避一些常规的HTTP限制,适用于爬......
  • 直播平台源码搭建协议讲解篇:传输控制协议TCP
    简介:由于直播平台在当今时代发展的越来越迅速,使得直播平台的技术功能越来越智能,让用户在直播平台中能够和其他用户进行实时互动,让用户可以获取到全世界最新的资讯,让一些用户可以作为主播获得工作,让另一些用户作为观众获得放松快乐等,所以直播平台源码搭建也成为了众多创业者想要涉......