热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

精讀《圖解HTTP》

媒介作為一個前端,假如能夠深刻明白HTTP通信,能夠讓我們在一樣平常開闢事情中疾速定位題目。所以我非常提議人人去讀一下《圖解HTTP》和《HTTP威望指南》。威望指南解說的非常細緻

媒介

作為一個前端,假如能夠深刻明白 HTTP 通信,能夠讓我們在一樣平常開闢事情中疾速定位題目。所以我非常提議人人去讀一下《圖解HTTP》和《HTTP威望指南》。威望指南解說的非常細緻,內容也非常的周全,然則這本書的厚度也讓許多同硯望而生畏。引薦人人從 《圖解HTTP》 這本書最先進修,這本書雖然沒有威望指南細緻,但涵蓋了許多我們一樣平常開闢須要的知識點,明白他,能讓我們的開闢效力事半功倍。

《圖解HTTP》這本書對互聯網基盤—— HTTP 協定舉行了周全體系的引見。作者從 HTTP 發展史最先,嚴謹地理會了 HTTP 協定的構造,枚舉許多罕見通信場景及實戰案例,末了延伸到Web平安、最新手藝意向等方面。經由過程書中大批活潑抽象的通信圖例,我們能夠更周全地明白 HTTP 通信過程當中客戶端與效勞器之間的交互狀況。在讀這本書的過程當中我收成頗多,並用頭腦導圖的體式格局紀錄下來,輕易自身後期溫故。假如你恰好沒有讀過,能夠當作度這本書的預習瀏覽,相信你也會有所收成(頭腦導圖圖片能夠有點小,記得點開看)

相識 HTTP 協定接見 Web

《精讀《圖解HTTP》》

這一章引見了 Web 及收集協定的基礎,http 通信被拆分紅四層,運用層,傳輸層,收集層和鏈路層,每層只需斟酌分派給自身的使命,不須要弄清全部協定鏈路的細節。運用層使我們肉眼能看見的,我們經常運用的 http 協定和 FTP 協定就處在這一層,往下就是傳輸層,TCP/IP 協定事情的處所(我們的IP是IP地點,和這裏的IP 協定有做辨別),再往下是收集層,傳輸層豎立銜接以後,收集層擔任將數據包的傳輸(數據包是收集傳輸的最小單元)。末了是鏈路層,用來銜吸收集配件的部份,舉個栗子就是我們常說的網卡啊,光纖啊。在一個完全的數據傳輸中,客戶端會根據運用層,傳輸層,收集層,鏈路層的遞次舉行舉行處置懲罰,每一層都邑加一個首部,效勞器端在吸收的時刻根據鏈路層,網路層,傳輸層,運用層的遞次去移除首部。

我們常說的3次握手就是 TCP 協定採納的戰略,為了傳輸輕易,TCP 將大數據分割成以報文為單元的數據包,IP 協定擔任把數據包發送出去。在發送的過程當中經常須要經由多個路由器的中轉,這個時刻會運用 ARP 協定來查找下一個路由器的地點。

通經常運用戶的習氣會去接見域名而不是IP地點,將域名解析成對應的 IP 就須要用到 DNS 協定域名解析的效勞。

簡樸的 HTTP 協定

《精讀《圖解HTTP》》

一樣平常開闢中我們感知不到 http 協定的底層完成,我們所相識的 HTTP 協定老是由客戶端提議,效勞端吸收。我們關注到的要求,經常是要求的URI,協定版本,頭部信息,及內容實體,我們常運用的相應信息則包含了相應狀況,相應內容。

我們經常會運用不通的 http 要領來實行差別的操縱。我們常運用 GET 來獵取資本,運用 POST 傳輸實體主題,運用 PUT 傳輸文件,運用 DELETE 刪除文件,運用 OPTIONS 訊問支撐的要領(經常在跨域的場景中運用),運用TRACE 獵取接見途徑,運用 CONNECT 用隧道協定鏈接代辦。

http 協定是一種無狀況協定,不會去紀錄上一次接見狀況,這使妥當我們要做類似於登錄如許的公能的時刻,須要經由過程 COOKIE 來舉行狀況的治理。

HTTP 報文內的 HTTP 信息

《精讀《圖解HTTP》》

《精讀《圖解HTTP》》
一般HTTP報文(用於HTTP協定交互的信息)的構造包含,要求行,狀況行,首部字段等,從 HTTP 的報文中,我們能夠獲得許多信息。在 MIME 擴大中會運用一種稱為多部份對象鳩合的要領,來包容多份差別的數據類型, 在 HTTP 報文中運用多部份對象時,須要在首部字段上加上 Content-type 。

經由過程設置首部字段,來到達獵取部份內容局限要求(要求資本中斷後,不須要重新最先要求),將傳輸內容編碼的目標,來進步加載效力。

有的時刻差別的場景須要我們獵取差別的內容,就比方頁面的中英文切換的功用,在HTTP要求中,我們經由過程設置 accept 類的要求頭字段完成,也就是內容協商的體式格局,返回最合適的內容。協商體式格局分為,效勞器驅動協商,客戶端驅動協商,通明協商。

返回效果的 HTTP 狀況

《精讀《圖解HTTP》》

在HTTP通信中,經由過程轉態碼,示知客戶端的要求狀況。狀況碼大抵能夠被分為 5 大類,1xx 示意接收的要求正在處置懲罰,2xx 示意要求一般處置懲罰完畢,3xx 示意須要舉行附加操縱以完成要求,4xx 示意客戶端沒法處置懲罰要求,5xx 示意效勞器處置懲罰失足。

在這5大類要求中,我們經常運用的十幾種狀況碼,須要我們重點去掌握,細緻引見看👆的頭腦導圖。

與 HTTP 合作的 Web 效勞器

《精讀《圖解HTTP》》

經由過程運用虛擬機,能夠完成單台主機多個域名的站點布置。在現實通信中,我們經常運用,代辦,網關,隧道輔佐要求轉發,平安通信。

為了進步網站機能,我們會運用緩存體式格局來進步站點要求速率,一般是經由過程設置代辦效勞器緩存和客戶端緩存來完成。須要注重的是,緩存都邑設置一個逾期時候,站點內容更新時,緩存內容也須要實時更新。

HTTP 頭部

《精讀《圖解HTTP》》

《精讀《圖解HTTP》》

《精讀《圖解HTTP》》

在要求中,HTTP 報文由要求要領,URI,HTTP版本,HTTP 首部字段等部份組成。在相應中,HTTP 的報文有 HTTP 版本,狀況碼,HTTP首部字段3部份組成。首部信息尤為重要,我們能夠經由過程首部字段的設置來通報要求信息,類比於緩存掌握,報文建立時候,是不是緊縮編碼,是不是支撐跨域等。

確保 Web 平安的 HTTPS

《精讀《圖解HTTP》》
HTTP 簡樸天真的設置也作育了他的瑕玷。1. 通信運用明文,內容能夠被竊聽。2、不考證通信方省份,因此有能夠會遭受假裝。3、沒法證實報文的完全性,一切有能夠被改動。HTTPS 實在也不算是一個全新的協定,HTTPS = HTTP + 加密 + 認證 + 完全性庇護。HTTPS 完美了 HTTP 的相干瑕玷,在 HTTP 的部份通信接口採納 SSL 和 TLS 協定替換,運用了数字證書認證機構和其他相干構造頒布的公然秘鑰證書

作甚認證

《精讀《圖解HTTP》》

《精讀《圖解HTTP》》
HTTP 的認證體式格局一般是 BASIC認證(基礎認證),DIGEST認證(擇要認證),SSL 客戶端認證,FormBase 認證(基於表單認證)。BASIC 認證和 DIGEST 認證經由過程首部字段 Authorization 確認認證信息,SSL 藉由 HTTPS 客戶端證書完成認證體式格局。 表單認證則是依賴於 COOKIE 保留用戶的登錄狀況。

基於 HTTP 的功用追加協定

《精讀《圖解HTTP》》

SPDY 在TCP/IP 的運用層與運輸層之間經由過程新加會話層的情勢運作,運用 SPDY 使得 HTTP 協定的功用得到了擴大,完成了多路復用流,給予要求優先級,緊縮 HTTP 首部,推送功用,效勞器提示功用。

運用 WebSocket 舉行全雙工通信,只需豎立了鏈接,客戶端和效勞器都能都主動得向對方發送信息。和 HTTP 比擬,減少了每次豎立銜接的開支,減少了通信首部信息。

HTTP/2.0 改良了運用 web 時的速率體驗。

構建 Web 內容的手藝

《精讀《圖解HTTP》》

web 運用開闢言語的三劍客,HTML,CSS,Javascript 。書出書的有點久所以書中沒有提到,如今火爆的 web 構建手藝,Vue,React 等流行前端框架。XML,JSON 數據宣布言語,个中 JSON 比較經常運用,一樣平常開闢都離不了他。

web 的進擊手藝

《精讀《圖解HTTP》》

《精讀《圖解HTTP》》

《精讀《圖解HTTP》》
在 Web 運用中,從瀏覽器那吸收到的 HTTP 要求的全部內容,都能夠在客戶端自在的變動、改動,在HTTP要求報文中加載進擊代碼,就可以提議對 Web 運用的進擊。Web 運用的進擊形式主如果主動進擊和被動進擊。

罕見的進擊體式格局有,跨站劇本進擊,SQL 注入進擊,HTTP 首部注入進擊。這些進擊形成的影響見👆頭腦導圖。一般簡樸的 HTTP 協定自身不會存在平安性的題目,協定自身也不會成為進擊對象,黑客應用的經常是因為設想和設置上的缺點,會話治理忽視等激發的平安漏洞舉行進擊。

😊往期的讀書筆記

《圖解HTTP》這本書讀完啦,下一期我們來讀讀《HTTP威望指南》,我在
github 建了堆棧放這些頭腦導圖的原件,假如以為圖片不清楚,同硯們能夠去
github 上下載查閱。假如你也喜好用頭腦導圖的體式格局來紀錄讀書筆記,也迎接和我一同保護這個堆棧,迎接留言或則微信(646321933)與我交換

精讀《你不知道的 Javascript(上卷)》

精讀《你不知道的Javascript》中卷

精讀《深入淺出Node.js》

Javascript 渣滓接納算法

頭腦導圖下載地點

《圖解HTTP》 PDF下載地點


推荐阅读
  • 单页面应用 VS 多页面应用的区别和适用场景
    本文主要介绍了单页面应用(SPA)和多页面应用(MPA)的区别和适用场景。单页面应用只有一个主页面,所有内容都包含在主页面中,页面切换快但需要做相关的调优;多页面应用有多个独立的页面,每个页面都要加载相关资源,页面切换慢但适用于对SEO要求较高的应用。文章还提到了两者在资源加载、过渡动画、路由模式和数据传递方面的差异。 ... [详细]
  • 本文介绍了如何使用vue-awesome-swiper组件,包括在main.js中引入和使用swiper和swiperSlide组件,以及设置options和ref属性。同时还介绍了如何在模板中使用swiper和swiperSlide组件,并展示了如何通过循环渲染swipes数组中的数据,并使用picUrl属性显示图片。最后还介绍了如何添加分页器。 ... [详细]
  • 微信民众号商城/小顺序商城开源项目介绍及使用教程
    本文介绍了一个基于WeiPHP5.0开发的微信民众号商城/小顺序商城的开源项目,包括前端和后端的目录结构,以及所使用的技术栈。同时提供了项目的运行和打包方法,并分享了一些调试和开发经验。最后还附上了在线预览和GitHub商城源码的链接,以及加入前端交流QQ群的方式。 ... [详细]
  • 浅解XXE与Portswigger Web Sec
    XXE与PortswiggerWebSec​相关链接:​博客园​安全脉搏​FreeBuf​XML的全称为XML外部实体注入,在学习的过程中发现有回显的XXE并不多,而 ... [详细]
  • 篇首语:本文由编程笔记#小编为大家整理,主要介绍了VoLTE端到端业务详解|VoLTE用户注册流程相关的知识,希望对你有一定的参考价值。书籍来源:艾怀丽 ... [详细]
  • 知识图谱——机器大脑中的知识库
    本文介绍了知识图谱在机器大脑中的应用,以及搜索引擎在知识图谱方面的发展。以谷歌知识图谱为例,说明了知识图谱的智能化特点。通过搜索引擎用户可以获取更加智能化的答案,如搜索关键词"Marie Curie",会得到居里夫人的详细信息以及与之相关的历史人物。知识图谱的出现引起了搜索引擎行业的变革,不仅美国的微软必应,中国的百度、搜狗等搜索引擎公司也纷纷推出了自己的知识图谱。 ... [详细]
  • 单点登录原理及实现方案详解
    本文详细介绍了单点登录的原理及实现方案,其中包括共享Session的方式,以及基于Redis的Session共享方案。同时,还分享了作者在应用环境中所遇到的问题和经验,希望对读者有所帮助。 ... [详细]
  • Python SQLAlchemy库的使用方法详解
    本文详细介绍了Python中使用SQLAlchemy库的方法。首先对SQLAlchemy进行了简介,包括其定义、适用的数据库类型等。然后讨论了SQLAlchemy提供的两种主要使用模式,即SQL表达式语言和ORM。针对不同的需求,给出了选择哪种模式的建议。最后,介绍了连接数据库的方法,包括创建SQLAlchemy引擎和执行SQL语句的接口。 ... [详细]
  • 预备知识可参考我整理的博客Windows编程之线程:https:www.cnblogs.comZhuSenlinp16662075.htmlWindows编程之线程同步:https ... [详细]
  • 安装oracle软件1创建用户组、用户和目录bjdb节点下:[rootnode1]#groupadd-g200oinstall[rootnode1]#groupad ... [详细]
  • POCOCLibraies属于功能广泛、轻量级别的开源框架库,它拥有媲美Boost库的功能以及较小的体积广泛应用在物联网平台、工业自动化等领域。POCOCLibrai ... [详细]
  • IP经常分为内网和外网的,内网IP一般是有路由器分配的,尤其是想公司可能都有各自的内网IP,公用的公网IP。查询内网IP的通用方法是通过doc指令来查询,如ipconfig或者ipconfigall ... [详细]
  • 三、查看Linux版本查看系统版本信息的命令:lsb_release-a[root@localhost~]#lsb_release-aLSBVersion::co ... [详细]
  • 转自:微点阅读(www.weidianyuedu.com)微点阅读-范文大全-免费学习知识的网站电脑唯独搜不到自己家wifi,别人家的都能搜到,手机也可以搜到自己家的,就是电脑不可 ... [详细]
  • IP、ARP、TCP、UDP、ICMP、DNS、路由协议、DHCP协议的缺陷,容易受到的攻击,以及防御措施1、IP协议1.1、介绍: ... [详细]
author-avatar
晨光微露36
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有