透视 HTTP 协议
罗剑锋(Chrono)
前奇虎 360 技术专家,Nginx/OpenResty 开源项目贡献者
63942 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 48 讲
开篇词 (1讲)
透视 HTTP 协议
15
15
1.0x
00:00/00:00
登录|注册

07 | 自己动手,搭建HTTP实验环境

搜索Wireshark相关的资料
搭建HTTP实验环境并测试验证
Telnet是一个命令行工具
选择OpenResty作为Web服务器
选择Chrome或Firefox浏览器作为HTTP协议中的user agent
选择Wireshark作为抓包工具
搭建“最小化”的环境
打开Chrome
运行Wireshark
启动Web服务器
修改本机的hosts文件
安装Wireshark, Chrome/Firefox, Telnet, OpenResty
获取最新的http_study项目源码
OpenResty
Telnet
Chrome/Firefox
Wireshark
HTTP协议需要下层其他协议的配合
HTTP协议中的两个端点
HTTP翻译成中文是“超文本传输协议”
HTTP的发展和版本
HTTP协议诞生于30年前
课下作业
小结
测试验证
安装过程
软件介绍
破冰篇回顾
HTTP实验环境搭建

该思维导图由 AI 生成,仅供参考

这一讲是“破冰篇”的最后一讲,我会先简单地回顾一下之前的内容,然后在 Windows 系统上实际操作,用几个应用软件搭建出一个“最小化”的 HTTP 实验环境,方便后续的“基础篇”“进阶篇”“安全篇”的学习。

“破冰篇”回顾

HTTP 协议诞生于 30 年前,设计之初的目的是用来传输纯文本数据。但由于形式灵活,搭配 URI、HTML 等技术能够把互联网上的资源都联系起来,构成一个复杂的超文本系统,让人们自由地获取信息,所以得到了迅猛发展。
HTTP 有多个版本,目前应用的最广泛的是 HTTP/1.1,它几乎可以说是整个互联网的基石。但 HTTP/1.1 的性能难以满足如今的高流量网站,于是又出现了 HTTP/2 和 HTTP/3。不过这两个新版本的协议还没有完全推广开。在可预见的将来,HTTP/1.1 还会继续存在下去。
HTTP 翻译成中文是“超文本传输协议”,是一个应用层的协议,通常基于 TCP/IP,能够在网络的任意两点之间传输文字、图片、音频、视频等数据。
HTTP 协议中的两个端点称为请求方应答方。请求方通常就是 Web 浏览器,也叫 user agent,应答方是 Web 服务器,存储着网络上的大部分静态或动态的资源。
在浏览器和服务器之间还有一些“中间人”的角色,如 CDN、网关、代理等,它们也同样遵守 HTTP 协议,可以帮助用户更快速、更安全地获取资源。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

本文介绍了如何搭建一个最小化的HTTP实验环境,以便学习HTTP协议的基础知识和进行实际操作。作者首先回顾了HTTP协议的发展历程和基本概念,然后介绍了用于搭建实验环境的几个应用软件,包括Wireshark、Chrome/Firefox、Telnet和OpenResty。通过搭建这样的实验环境,读者可以利用Wireshark进行网络抓包分析,使用浏览器观测HTTP传输过程,以及利用Telnet模拟浏览器行为,从而更好地理解和学习HTTP协议。整体而言,本文为读者提供了一个简单、实用的搭建HTTP实验环境的指南,有助于加深对HTTP协议的理解和应用。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《透视 HTTP 协议》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(124)

  • 最新
  • 精选
  • cylim
    在Mac上, 拷贝项目(需要Git) 1. git clone https://github.com/chronolaw/http_study 安装OpenResty (推荐使用Homebrew) 1. brew tap openresty/brew 2. brew install openresty 运行项目 1. cd http_study/www/ 2. openresty -p `pwd` -c conf/nginx.conf 停止项目 1. openresty -s quit -p `pwd` -c conf/nginx.conf

    作者回复: 好同学!!赞!

    2019-06-12
    12
    155
  • 前端西瓜哥
    对 cylim 的 mac 上运行 openresty 的教程进行补充: 按照 cylim 的做法,我遇到了访问 localhost 时,网页报 403 错误的情况,原因是没有 html/index.html 文件的访问权限。我研究并找到了解决方案: 先 ls -la html,查看文件的权限,得到 user 和 group,我这里是 fstar 和 staff。 然后在 conf/nginx.conf 文件的顶部添加 user fstar staff; 然后再启动 openresty 就可以正常访问了。

    作者回复: 感谢同学的热心补充。

    2019-06-28
    6
    27
  • 古夜
    我打赌很多人抓不到包,找不到本地回环地址,不知道最新版的wireshark是否修复了这个问题,如果出现以上问题,记得卸载重装wireshark,不要勾选它自带的ncap应该是这个名字,然后自己去单独下一个这个软件

    作者回复: 有问题欢迎提出来,我机器上的Wireshark装的比较早,具体的步骤记不太清了,应该是很简单的。

    2019-06-12
    7
    23
  • geek桃
    送给后来的同学: 如果你按照步骤操作之后出现:start启动完成后,cmd窗口一闪而过,点击list启动时显示“没有运行的任务匹配制定标准”,请按任意键继续,当随便输入数据时,cmd窗口又没了;去查找www/logs/error.log,如果日志报错为“10013: An attempt was made to access a socket in a way forbidden by its access permissions”,说明你的80端口被占用了,按照下面步骤操作。 1.按键盘win+r 打开运行界面,输入cmd,确定,打开管理员界面 2.输入 netstat -aon | findstr :80 (有一条0.0.0.0的数据,记住这条数据最后的数字;我的是5884) 3.输入 tasklist|findstr "5884" (根据上一步查到的数字,找到5884端口对应的服务名称,我的是snv) 4.在控制台关闭服务 5.重新启动start.bat,成功!

    作者回复: 非常好的经验分享,鼓励。 Windows环境比较复杂,容易出各种错误,如果不好解决可以尝试用虚拟机或者docker。

    2021-03-03
    5
    17
  • 名曰蓝兮
    centos上的安装步骤,有错误请指出 wireshark: 1. yum install wireshark yum install wireshark-gnome 2. 如果不是root用户,启动后没有权限,做如下操作 2.1 添加当前用户到wireshark组,我的用户叫'zp': usermod -a -G wireshark zp 2.2 然后给dumpcap读网卡的权限: setcap cap_net_raw,cap_net_admin+eip /usr/sbin/dumpcap 完成后重启机器。 telnet: yum install telnet OpenResty: 官网有说明,按照说明一步步来 1. 添加OpenResty仓库: sudo yum install yum-utils sudo yum-config-manager --add-repo https://openresty.org/package/centos/openresty.repo 2. 安装OpenResty: sudo yum install openresty sudo yum install openresty-resty 3. 在~目录下创建conf和logs文件夹: mkdir ~/work cd ~/work mkdir logs/ conf/ 4. 在conf文件夹下创建nginx.conf文件,内容如下: worker_processes 1; error_log logs/error.log; events { worker_connections 1024; } http { server { listen 8080; location / { default_type text/html; content_by_lua_block { ngx.say("<p>hello, world</p>") } } } } 5. 添加OpenResty环境变量,注意冒号,别丢了: PATH=/usr/local/openresty/nginx/sbin:$PATH export PATH 6. 在'~/work'目录下启动OpenResty: nginx -p `pwd`/ -c conf/nginx.conf 7. 验证安装: curl http://localhost:8080 输出: <p>hello, world</p>

    作者回复: 写的很详细,赞!

    2019-06-19
    17
  • 珈蓝白塔
    Mac 开发环境的搭建参考《答疑篇41》,项目中已经有前辈写好的 shell 脚本,终端里直接运行就可以,不需要自己输入 openresty 命令啦;服务器启动以后访问 localhost 环境遇到了 403 问题,显示不出来 HTML,可参照留言区中提出的,在 conf/nginx.conf 文件的顶部添加 user xxxx staff; 来解决,这个 xxxx 是自己的 mac 账户名;Wireshark(v3.2.3) 中选择环回地址时,选择 lockback:lo0 就可以啦,过滤器是和文中一样的,已成功搭建环境(2020年4月13日)

    作者回复: 欢迎经验分享,让同学都少走弯路。

    2020-04-13
    5
    16
  • YUANWOW
    我一开始nginx一直起不来 后面看了error.log 发现本机443端口被占用了 netstat -ano | findstr "443" 看到一个 0.0.0.0:443 最后一列是进程的PID 查找到是vmware-hostd这个进程 后面谷歌搜索了下 vmware的虚拟机共享会默认占用443端口 所以安装了vmware的把虚拟机共享关闭就好了

    作者回复: 欢迎经验分享。

    2019-07-02
    4
    12
  • geraltlaush
    破冰篇最后一篇,是马上开展破冰行动,抓捕林耀东了吗

    作者回复: 写这个的时候电视剧还没出呢,完全的碰巧,笑。

    2019-06-12
    11
  • pyhhou
    想请问下在 MacOs 或者是 Linux 上怎么搭建?(不是太想弄 Windows 虚拟机)

    作者回复: 需要用brew或者yum安装OpenResty,然后看一下nginx.conf,里面的注释有说明。

    2019-06-12
    2
    11
  • 郁方林
    start启动完成后,cmd窗口一闪而过,当我点击list启动时显示“没有运行的任务匹配制定标准”,请按任意键继续,当我随便输入数据时,cmd窗口又没了

    作者回复: 看一下www/logs/error.log,是否有端口被占用了。

    2019-06-12
    2
    10
收起评论
显示
设置
留言
99+
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部