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

41 | Linux/Mac实验环境搭建与URI查询参数

头字段
查询参数
解密HTTPS抓包
查看抓包
抓包
查看抓包
基本抓包方式
修改/etc/hosts添加域名解析
使用run.sh脚本
使用git clone
验证安装
安装步骤
其他发送附加信息的方式
正确使用场景
区别
使用tshark
使用tcpdump
测试
启停实验环境
获取http_study项目源码
安装OpenResty
安装homebrew
验证课程的测试URI
启停实验环境
获取http_study项目源码
安装OpenResty
区别与正确使用
图形界面版本的Wireshark
命令行抓包
Mac上搭建实验环境
Linux上搭建实验环境
URI的查询参数和头字段
Linux/Mac下的抓包
Linux/Mac实验环境搭建
HTTP答疑

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

你好,我是 Chrono。
先要说一声“抱歉”。由于工作比较紧张、项目实施频繁出差,导致原本预定的“答疑篇”迟迟没有进展,这次趁着“十一”长假,总算赶出了两期,集中回答几个同学们问得比较多的问题:Linux/Mac 实验环境搭建(第 7 讲),URI 查询参数(第 11 讲),还有 DHE/ECDHE 算法的原理(第 26 讲),后续有时间可能还会再陆续补充完善。
很高兴在时隔一个多月后与你再次见面,废话不多说了,让我们开始吧。

Linux 上搭建实验环境

我们先来看一下如何在 Linux 上搭建课程的实验环境。
首先,需要安装 OpenResty,但它在 Linux 上提供的不是 zip 压缩包,而是各种 Linux 发行版的预编译包,支持常见的 Ubuntu、Debian、CentOS 等等,而且官网上有非常详细安装步骤。
以 Ubuntu 为例,只要“按部就班”地执行下面的几条命令就可以了,非常轻松:
# 安装导入GPG公钥所需的依赖包:
sudo apt-get -y install --no-install-recommends wget gnupg ca-certificates
# 导入GPG密钥:
wget -O - https://openresty.org/package/pubkey.gpg | sudo apt-key add -
# 安装add-apt-repository命令
sudo apt-get -y install --no-install-recommends software-properties-common
# 添加官方仓库:
sudo add-apt-repository -y "deb http://openresty.org/package/ubuntu $(lsb_release -sc) main"
# 更新APT索引:
sudo apt-get update
# 安装 OpenResty
sudo apt-get -y install openresty
全部完成后,OpenResty 会安装到“/usr/local/openresty”目录里,可以用它自带的命令行工具“resty”来验证是否安装成功:
$resty -v
resty 0.23
nginx version: openresty/1.15.8.2
built with OpenSSL 1.1.0k 28 May 2019
有了 OpenResty,就可以从 GitHub 上获取 http_study 项目的源码了,用“git clone”是最简单快捷的方法:
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

本文介绍了在Linux和Mac上搭建HTTP实验环境以及URI查询参数的使用。在Linux上,作者详细介绍了如何安装OpenResty,并提供了安装命令和验证方式。然后,通过git clone获取http_study项目的源码,并介绍了用于启停实验环境的Shell脚本。在Mac上,作者介绍了使用homebrew安装OpenResty的过程,并提供了相应的命令。此外,还介绍了在Linux和Mac下使用命令行抓包的方法,包括tcpdump和tshark的基本用法。最后,作者讨论了URI的查询参数和头字段的区别,强调了它们的作用域和时效性不同,以及在何种场景下使用更加合适。文章内容涵盖了Linux/Mac实验环境搭建和URI查询参数的使用,适合对HTTP技术感兴趣的读者阅读学习。

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

全部留言(20)

  • 最新
  • 精选
  • 浪里淘沙的小法师
    讲一下用M1芯片 mac 搭建搭建环境的遇到的问题和解决方法。 1. 运行 ./run.sh start 报错 /usr/local/bin/openresty: command not found 这是因为 M1 芯片mac 的 homebrew 安装软件的位置与以往不同,先通过 which openresty 查询 openresty 的位置 /opt/homebrew/bin/openresty,然后打开 run.sh 脚本替换一下老师写的位置 if [ $os != "Linux" ] ; then openresty="/usr/local/bin/openresty" fi 替换成 if [ $os != "Linux" ] ; then openresty="/opt/homebrew/bin/openresty" fi 2. 再运行 ./run.sh start 报错 nginx: [emerg] could not build server_names_hash, you should increase server_names_hash_bucket_size: 32 网上查寻了一下,放大 bucket_size 即可,打开 www/conf/nginx.conf 文件添加这一句server_names_hash_bucket_size 64; 即可 # http conf http { #include http/common.conf; #include http/cache.conf; #include http/resty.conf; #include http/mime.types; server_names_hash_bucket_size 64; include http/*.conf; include http/servers/*.conf; }

    作者回复: 太高端了,都用上M1的Mac。 也可以参考GitHub里的Dockerfile,构建出基于arm的镜像。

    2021-11-10
    23
  • GitHubGanKai
    真好,又见到你了,而且我最近换个了mac,😊正愁这个。

    作者回复: we meet again.

    2019-10-09
    2
    6
  • Luka!3055
    记录下问题: brew install openresty/brew/openresty 后,报错: curl: (7) Failed to connect to raw.githubusercontent.com port 443: Connection refused Error: An exception occurred within a child process: DownloadError: Failed to download resource "openresty-openssl--patch" Download failed: https://raw.githubusercontent.com/openresty/openresty/master/patches/openssl-1.1.0d-sess_set_get_cb_yield.patch 此时把 DNS 设置为 114.114.114.114 或者 8.8.8.8 就好了,最好再挂个梯子

    作者回复: nice

    2020-05-07
    2
  • dongge
    老师好, 按文章指导搭建了MAC的环境: openresty -v nginx version: openresty/1.11.2.2 在~/git/http_study/www目录下执行 ./run.sh start Password: nginx: [emerg] "/Users/xiaodong/git/http_study/www/conf/ssl/ticket.key" must be 48 bytes in /Users/xiaodong/git/http_study/www/conf/nginx.conf:34 报了这个错误,在网上google没找到解决方法。 尝试在nginx.conf中注销相关代码,也会报其他错误。 老师能指点一下吗?

    作者回复: 这是提示Nginx要求48字节的密钥文件,按理说附带的80字节也是可以的,你可以用命令“openssl rand 48 > ticket.key”重新生成www/conf/ssl/ticket.key。 详细可参见http://nginx.org/en/docs/http/ngx_http_ssl_module.html#ssl_session_tickets 另外,你用的openresty版本太老了,用最新的1.15.8.2可能就不会出现这样的问题。

    2019-10-18
    2
    2
  • dongge
    这个专栏这么好玩,留言的人这么少,真可惜。

    作者回复: 答疑篇来的太晚了,没赶上当初的热度,不过总会有需要的同学看到的。

    2019-10-16
    2
  • ifelse
    谢谢分享

    作者回复: my pleasure.

    2023-02-09归属地:浙江
    1
  • Change
    老师请教个问题:Mac 环境下安装以后,按照命令./run.sh start 启动后访问 localhost 显示403 Forbidden:终端返回的错误信息是下面的错误信息,这是所有端口都被占用了?我查了一下好像也没有被占用啊,不知道这是啥原因 nginx: [emerg] bind() to 0.0.0.0:80 failed (48: Address already in use) nginx: [emerg] bind() to 0.0.0.0:8080 failed (48: Address already in use) nginx: [emerg] bind() to 0.0.0.0:443 failed (48: Address already in use) nginx: [emerg] bind() to 0.0.0.0:8443 failed (48: Address already in use) nginx: [emerg] bind() to 0.0.0.0:440 failed (48: Address already in use) nginx: [emerg] bind() to 0.0.0.0:441 failed (48: Address already in use) nginx: [emerg] bind() to 0.0.0.0:442 failed (48: Address already in use)

    作者回复: 可能需要sudo,是否权限的问题。 可以在网上搜一下错误信息,Nginx的问题一般都有现成的解决办法。

    2020-03-28
    7
    1
  • SmNiuhe
    这个大家有遇到嘛,是不是资源的问题 brew install openresty/brew/openresty :DownloadError: Failed to download resource "openresty-openssl--patch" Download failed: https://raw.githubusercontent.com/openresty/openresty/master/patches/openssl-1.1.0d-sess_set_get_cb_yield.patch

    作者回复: 如果mac安装有问题,可以用virtualbox装个Linux虚拟机,暂解燃眉之急。

    2019-11-07
    6
    1
  • 超轶主
    mac环境运行 run run.sh 返回 nginx version: openresty/1.19.9.1 format : run.sh [start|stop|reload|list]是什么情况呢

    作者回复: 后面要加参数,start|stop|reload|list。 脚本比较简单,可以用vi看看。

    2021-12-13
    2
  • silence
    请问安装好环境后在www目录执行./run.sh start 老是command not found怎么解决

    作者回复: 是不是没有安装好openresty,看看是哪个命令没找到,再按照课程正文是否遗漏了哪个步骤。

    2021-08-23
    3
收起评论
显示
设置
留言
20
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部