07 | 自己动手,搭建HTTP实验环境
Chrono
该思维导图由 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
《透视 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-1212155 - 前端西瓜哥对 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-28627 - 古夜我打赌很多人抓不到包,找不到本地回环地址,不知道最新版的wireshark是否修复了这个问题,如果出现以上问题,记得卸载重装wireshark,不要勾选它自带的ncap应该是这个名字,然后自己去单独下一个这个软件
作者回复: 有问题欢迎提出来,我机器上的Wireshark装的比较早,具体的步骤记不太清了,应该是很简单的。
2019-06-12723 - 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-03517 - 名曰蓝兮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-1917 - 珈蓝白塔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-13516 - YUANWOW我一开始nginx一直起不来 后面看了error.log 发现本机443端口被占用了 netstat -ano | findstr "443" 看到一个 0.0.0.0:443 最后一列是进程的PID 查找到是vmware-hostd这个进程 后面谷歌搜索了下 vmware的虚拟机共享会默认占用443端口 所以安装了vmware的把虚拟机共享关闭就好了
作者回复: 欢迎经验分享。
2019-07-02412 - geraltlaush破冰篇最后一篇,是马上开展破冰行动,抓捕林耀东了吗
作者回复: 写这个的时候电视剧还没出呢,完全的碰巧,笑。
2019-06-1211 - pyhhou想请问下在 MacOs 或者是 Linux 上怎么搭建?(不是太想弄 Windows 虚拟机)
作者回复: 需要用brew或者yum安装OpenResty,然后看一下nginx.conf,里面的注释有说明。
2019-06-12211 - 郁方林start启动完成后,cmd窗口一闪而过,当我点击list启动时显示“没有运行的任务匹配制定标准”,请按任意键继续,当我随便输入数据时,cmd窗口又没了
作者回复: 看一下www/logs/error.log,是否有端口被占用了。
2019-06-12210
收起评论