惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

P
Proofpoint News Feed
AI
AI
T
Threatpost
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
C
Cybersecurity and Infrastructure Security Agency CISA
Scott Helme
Scott Helme
AWS News Blog
AWS News Blog
P
Privacy & Cybersecurity Law Blog
G
GRAHAM CLULEY
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
C
CERT Recently Published Vulnerability Notes
Cyberwarzone
Cyberwarzone
NISL@THU
NISL@THU
P
Privacy International News Feed
Schneier on Security
Schneier on Security
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
SecWiki News
SecWiki News
T
Tor Project blog
W
WeLiveSecurity
Security Archives - TechRepublic
Security Archives - TechRepublic
Spread Privacy
Spread Privacy
H
Hacker News: Front Page
Latest news
Latest news
C
Cyber Attacks, Cyber Crime and Cyber Security
D
Darknet – Hacking Tools, Hacker News & Cyber Security
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
T
Troy Hunt's Blog
Cisco Talos Blog
Cisco Talos Blog
人人都是产品经理
人人都是产品经理
腾讯CDC
博客园 - 【当耐特】
Engineering at Meta
Engineering at Meta
The Hacker News
The Hacker News
Application and Cybersecurity Blog
Application and Cybersecurity Blog
PCI Perspectives
PCI Perspectives
罗磊的独立博客
阮一峰的网络日志
阮一峰的网络日志
N
News and Events Feed by Topic
The Cloudflare Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
TaoSecurity Blog
TaoSecurity Blog
博客园 - 叶小钗
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
T
Threat Research - Cisco Blogs
量子位
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
美团技术团队
D
Docker
C
CXSECURITY Database RSS Feed - CXSecurity.com
T
Tenable Blog

机核

游戏性能旗舰最强之选,一加 Ace 6 至尊版国补到手价2999元起 6元钱自己更换电动车刹车线 《生化危机9:安魂曲》编剧Haris Orkin专访 摸金游戏?音乐游戏!暗区新赛季这把能弹的琴有何来历? 好评国产武侠SRPG《息风谷战略》免费DLC现已推出 | 机核 GCORES 碎片 《生化危机:安魂曲》将于5月实装首个免费更新内容 | 机核 GCORES 新锐东方游戏,谱写世界新章! 沉浸式恋爱视觉小说游戏《心象演算》免费试玩版现已正式上线 | 机核 GCORES 互动影游《代号三国:龙起》上线!穿越三国与曹操并肩、与佳人同行、与权谋博弈! 《老头收集梦想生活》,游戏酒桌会6,录音笔VOL.689 | 机核 GCORES 破界·共生——《白日梦:无限世界》五大核心游戏特点解析 价格已到史低,锐龙5 9600X/锐龙7 9700X正适合抄底 时间循环之旅即刻启程!《归环》一周目测试今日开启 热门在线韩游变魂游,洛奇衍生作能否打破“花瓶”魔咒? LG UltraGear evo 全新高端显示器系列:当“5K”遇见“AI”,不止强大,更懂热爱 反套路三国互动影游《代号三国:龙起》今日上线! 愿望单登记人数突破10万!备受瞩目的“女儿养成游戏” 《梦幻魔法公主》今日于Steam平台上线!限时八折优惠中 《黑神话:悟空》全球音乐会2026巡演将于4月29日12时开票 | 机核 GCORES “Snowguelike”生存肉鸽挖矿新作《蛙穿雪境》公布发售日期,5月7日正式上线 | 机核 GCORES 重塑移动办公、AI创作新境!全新华硕灵耀Air系列、ProArt 骁龙版震撼首发,创芯未来 均分88:《Saros》媒体评分汇总 | 机核 GCORES 上海烛龙公布合作遗迹探险游戏《吉时已到》首支预告片 | 机核 GCORES 首个独立游戏《萝薇日记》已上线Steam! 烛龙新IP《吉时已到》首曝,打造国内首款中式合作遗迹探险游戏 喜加一:《暗黑破坏神Ⅳ》国服现已开启限时免费领取本体活动 | 机核 GCORES 新版《生化危机》电影定于9月18日上映,官方网站现已上线 | 机核 GCORES 《冲就完事模拟器2》“星球大战”联动DLC正式宣布 | 机核 GCORES SteamController将于5月4日发售,售价99美元 | 机核 GCORES 事已至此,内存这么用也算省钱了,“2+1”非对称双通道应用实测 505游戏母公司现已收购《明末:渊虚之羽》IP | 机核 GCORES 基石 手动杂谈12|格斗游戏也能讲好故事 | 机核 GCORES I Love You Mr Snowball 我的向日葵小姐 会比GTA6先发售吗?最硬核的生存游戏《DAYZ》要推新DLC了 周记02:在2026遇到新怪谈 什么硬件,能让游戏Loading界面快速消失? | 机核 GCORES GadioSpec《百年风云世界杯》免费试听集 | 机核 GCORES 百年风云世界杯Vol.1丨足球崛起 | 机核 GCORES 100年前,一群人提前替我们经历了AI恐惧 | 机核 GCORES 《呼啸山庄》2026 ——一辆当代艺术的大卡车冲撞了我的大脑 手游《天穗之咲稻姬:日之香巡灵传》宣布将于7月27日停服 | 机核 GCORES 集结梦之队,征战世界杯,《最佳球会ONLINE》上线Steam 山水绝景随心拼 休闲建造游戏《千里山河录》Steam商店页公开 巫师帽、法袍、魔杖,为什么它们是影视、游戏里的法师必备三件套? 《无鞘信使》-第一章 复古风自动战斗肉鸽《终结之终结》Steam商店页面现已上线 电脑里有一款不破不立的MMO,录音笔VOL.688 | 机核 GCORES 《生化危机》30周年纪念周边发售,这次是真的“保护伞” 可靠耐用+AI全能,惠普战66 2025锐龙版深度体验 《时之书:无尽终章》关卡“大航海时代”全球首次公开 经典名作《乌龙派出所》改编经营模拟游戏《乌龙派出所~阿两的商店街物语~》正式宣布支持简体中文 明日开冲,解锁反套路三国互动影游《代号三国:龙起》即将上线 独立游戏《这是我的宝藏!》已发售~ 降低难度不是唯一解,无压力死亡也是好体验 Netflix官宣新片《普通人》:讲述韩国现代史上的权力风暴 《生化危机:安魂曲》全球销量现已突破700万份 《绝地鸭卫》PC版5月15日正式发售 亡妻回忆录?女性向情感叙事游戏《S-mail》现已正式发售 全新酷黑风格,酷睿Ultra 200S PLUS的高性价比搭档!七彩虹BATTLE-AX B860M-PLUS S WIFI7 V20 超级黑刃主板测评 胖狗 索尼发布了港台地区PS5产品价格调整公告,将于5月1日起实施 二次元怪猎+性感美女!《碧蓝幻想:无尽黄昏》开启Beta公测 这款怪谈类型中式恐怖游戏居然更新了?! 《百日战纪 -最终防卫学园-》改编漫画将于今年冬季开启连载 《如被附身,请致电我们》:匈牙利黑色幽默恐怖小说 《竹屿山房杂部卷五》(译文) 大树 超越引擎 摄影分享丨四月 碎片杂记vol.72 当老式FPS与老式动画技术碰撞出新时代的火花—《神探杰克鼠》 想做独游,如何避免首个项目就褒姒? 在线多人动作游戏《OCTOPinbs》将于5月12日上线Steam! 《酒鬼女神的酒诡》确定将于2026年登陆Steam 《CRYMELIGHT》将于11月5日(周四)正式发售!4月25日开始预购! 钢铁国度MKI部落Evolution,蛮兵部分 【钢铁国度】部落-Primal MK I,蛮兵部分 这是一个高中生用ai跑出来的作品,我自称他为物理神话 钢铁国度MKI部落Metamorphosis,蛮兵部分上 钢铁国度MKI部落Metamorphosis,蛮兵部分下 INDIE Live Expo于4月25日举办:首发9款新作,超200款独立游戏亮相 暗黑卡牌策略新作《魔忌:穷鼠啮狸》发布全新中文试玩版和发售预告片,4月30日正式上线在即 战锤40K长篇小说:变节者・苦难主宰(三)(全书完) 战锤40K长篇小说:变节者・苦难主宰(二) 战锤40K长篇小说:变节者・苦难主宰(一) 英语语言学习丨短语专题1:短语的特点 唯一的EVE战争 【少前同人】【M200】战术人形会梦见音乐会吗 【昏迷3】即将发售,前作主角悉数到场!“恶灵”宋老师化身可操控角色 业内人士:游戏公司“十有八九”使用生成式AI,包括卡普空 欢庆一周年:《光与影:33号远征队》全新纪念艺术图、超值折扣与免费更新同步上线 才刚刚开始呢 【抽奖】《星际卡车司机》推出免费大型更新,四折平史低折扣进行中 四人合作FPS游戏《佣兵猎手》抢先体验重大更新 1 现已上线 Raw Fury新作《深馅地牢 Deep Dish Dungeon》将于今秋加入 XGP 塔防幸存者游戏《魔怪来袭》推出首个 DLC 《饿狼传说:群狼之城》1周年纪念!新DLC“沃尔夫冈·克劳萨”今日参战 猫狗相伴 欢乐闯关 双人合作平台跳跃游戏《猫狗同行》上线Steam商店页 《同行:月球逃脱》(Together: Moon Escape)上线将于明日上线Steam
可以在家学会的网络技术(一):HTTP
韩大 · 2024-05-11 · via 机核

前言

上大学的时候,为了能在宿舍电脑之间架个局域网打“红色警戒”,硬着头皮自己去买网卡、同轴电缆、集线器、双绞线。那个时候上网还很困难,网络知识的资料非常少。那个时候的网卡附带的说明书,上面记载了双绞线的排布方法,当时的我一直收藏着这只有一页的说明书,如获至宝。时隔多年,现在网上的资料非常多了,但是网络知识的入门教程,特别是可以立刻动手尝试一下的教程,还是不很多。所以我想从我自己的学习过程作为依据,整理一下整个知识体系,帮助后来者减少中间走的弯路。

很多介绍网络知识的书籍,一上来就会给出上面这个图,初学者一看就懵逼了,这里面的字眼,没一个是知道啥意思的。所以我希望通过大家日常使用的软件,来一一介绍,希望看完本文,最后再回过头看这个图,能理解这个图是啥意思。我会根据这个图,从上往下来介绍。

浏览器和网站

我们日常使用网络最常见的过程,就是打开一个浏览器,然后输入一个网址。我们可以通过稍微深入一点点的去观察这个过程,来学习一部分网络知识。这次我们可以学到以下技术的关系:

HTTP\MIME\HTML

让我们用 Chrome 浏览器在电脑上打开一个网站,但在此之前,稍微做一点点准备。我们需要先打开浏览器的“开发者工具”:右上角三个点 → 更多工具 → 开发者工具。

在打开的窗口中,找到Network标签,需要注意看一下,左边是否有一个红色的圈圈里面有一个红色的正方形。这个状态表示“开发者工具”会记录从网络上首发的数据原文,也是我们得以探索网络知识的来源。

现在在浏览器的地址栏输入这个地址:https://www.lua.org/,这是我在网上找的一个相对简单的页面,以便观察学习用。

你应该能看到以上两个图的内容。一个是日常浏览器我们常见的显示内容;另外一个开发者工具中,会显示打开本次网站,网络上到底发生了什么事情的信息——浏览器从网站上下载了好几个文件:

  • www.lua.org:这是一个 HTML 的文档,包含了这个页面的文字内容和整体图文排版

  • lua30.gif:这是页面中左边蓝色写着“Lua”的那个图片

  • puc.jpg:页面右边灰色的写着“PUC”的图片

  • lua.css:一个控制页面字体等格式的文件

  • favicon.ico:出现在浏览器标签页左边的图标

在上面的表格里面,还记录了下载的耗时、下载的文件的大小。譬如www.lua.org这个页面,下载的大小就是 219 个字节,耗时 474 毫秒。现在我们知道了浏览器打开页面,是会下载几个文件的,但是具体是怎么下载的呢?我们可以进一步深入探索一下。

我们点击一下www.lua.org,可以看到右面出现了一个窗口,上面分为 Headers/Preview/Response 等分页。其中 Headers 分页,就包含了“如何下载文件”的信息,而这套下载文件的方法,有一个特别的名字,称为 HTTP (Hypertext Transfer Protocol),分页这里的 Headers 指的正是 HTTP 协议中的“头部信息”,这些信息详细描述了下载一个文件的方法。为了更清晰的看到这个过程,我们需要把Response HeadersRequest Headers旁边两个Raw的框框勾选上,查看最原始的网络报文。

当我们在浏览器的地址栏输入一个网址后,浏览器就会向网站服务器发出一个请求,请求的内容就是这里Request Headers所显示的内容。这些内容完全就是以文本形式(和你用记事本里面写的文字的格式一样),一行行的组织起来,发给服务器。

需要注意的有以下两行:

  • GET / HTTP/1.1 这一行表示需要下载一个路径为 "/" 的文件。如果我们输入的地址是 www.lug.org/index.html,那么这里发送的请求将会是 GET /index.html HTTP/1.1

  • Host: www.lua.org 这一行表示我们请求的网站域名是 www.lua.org,这个是在地址栏输入来确定的。(由于一个网站服务器可以承担多个域名的请求,所以请求的具体哪个域名,是需要明确的在请求报文中写出来的)

对于服务器网站的返回,是比较复杂的。这种返回一般分为“头部”(Header)和“身体”(Body)两个部分,“头部”是纯文本的,一行行的发回来;“身体”则是跟具体下载的文件内容有关。现在我们请求的是一个网站页面,所以也是文本的。

响应的 Header 表示了下载文件的情况、类型、大小:

  • HTTP/1.1 200 OK:这里的 200 被成为“响应码”,代表这次下载是否成功,200 这个数字就是成功的意思。另外一个广为人知的响应码是 404,表示你要下载的文件在服务器上找不到。(可能是网页文件被删除了,但是指向这个页面的链接还在)当然还有很多其他的响应码,譬如 500 表示服务器程序出错了,304 表示有缓存等等……

  • Content-Type: text/html:这个表示本次下载的文件内容的类型,浏览器是一个强大的软件,支持显示各种格式的文件,除了 html 格式网页以外,也支持多种图片、音乐、视频等等,如果服务器返回了一个浏览器不认识的格式,譬如 application/unknown 之类的,浏览器会提示用户是否要“下载这个文件”,让用户自己找其他程序去打开这个文件。当然我们这里的例子,是一个页面,text 是主类型,表示是文本文件,html 是子类型,表示是一个网页。

  • Content-Length: 2799:这个表示下载的文件的长度,2799 表示需要 2799 字节。由于网络下载是需要时间的,所以浏览器会一直等待,从网络上下载了 2799 字节的数据之后,才认为这个文件下载完成了,否则浏览器的地址栏会一直有一个“转圈”的图标表示正在下载。

除了上面提到的 Header 以外,其他的 Header 也各自有不同的功能,这些功能很多是不会被显示在网页内容上的,但也是非常重要的。

下面我们来看看响应的“身体”部分:

这部分内容是一个文本文件,以 HTML 这种格式编写的网页。这些文本会确定网页要显示什么内容,里面也会包含其他网页的跳转链接,还有图片的链接等等。浏览器读取到图片的链接的时候,就会再次向服务器发起一次下载请求。因此我们才看到除了 www.lua.org 的下载记录以外,还有 lua30.gif 和 puc.jpg 的下载记录。我们可以看到下载图片的地址写的是 images/lua30.gifimages/puc.jpg。我们还可以看一下这两个文件的下载记录,可以看到和上述类似的过程。

下载的图片也可以在开发者工具查看到:

从 Header 里面看到 GET /images/lua30.gif HTTP/1.1 里面的文件路径,和之前 HTML 中写的图片地址 <IMG SRC="images/lua30.gif ...>的文件路径一致。而响应的 Header 中,用image/gif来告诉浏览器,这个文件的主类型是 image,子类型是 gif。浏览器就根据这个类型信息来决定如何处理,在这里就是显示这个图片。决定浏览器如何显示文件的指令,并不是根据文件名的后缀 .gif,而是根据响应的 Content-Type 的 Header 的内容。根据响应 Header 中的 Content-Length: 187020,浏览器会下载后续的 187020 个字节的数据,作为 gif 格式图片的内容,然后显示这个图片。

对于 Content-Type 的内容,有一个专门的术语来代表:MIME(Multipurpose Internet Mail Extensions),意思是多用途互联网邮件扩展。这套描述数据内容格式的标准,同时也在电子邮件系统中使用,我们可以在电子邮件中插入各种格式的文件附件。

至此,我们大体的了解了 HTTP 协议的内容。总结一下,就是:

  1. 浏览器和网站服务器是通过一个请求,对应一个响应进行通信的。不同于 QQ、微信、网络游戏这类软件,它们可以同时进行数据的收、发,而无需请求后等待一个响应。

  2. 请求和响应都由一系列的文本文字,一行行的组成 Header 部分,用于指定要下载的文件,以及返回文件的类型、大小。Header 还被用于其他很多功能,譬如缓存控制、Cookies 跟踪等等。

  3. 响应的 Body 部分直接是下载文件的数据内容,很多时候并没有进行其他编码。最常见的是文本的 HTML 内容。

但是,我们还有一个问题没有提及,就是我们去请求的网站服务器,到底是一个什么东西?为什么输入一个域名,就可以联系到一个具体的网站服务器了呢?

这个问题下篇介绍,由此我们可以进入 TCP/IP 的世界。