作者回复: 用MAC的同学可以参考雷锋兄的分享哈:-)
作者回复: 这是因为你需要在请求行下输入:
Host: www.taohui.pub
RFC规定,如果请求中没有携带Host头部,一律返回400 Bad Request,目前基本Web服务器都遵循这一规则
作者回复: 是的,中间件、容器都是照着ABNF对协议的定义来实现功能的
作者回复: 是的,telnet只是建立了TCP连接
作者回复: 这是正常的,继续敲HTTP请求行GET / HTTP/1.1...就可以了
作者回复: 不是,是指服务器端提供80端口,客户端向服务器80端口建立连接,而客户端本地端口由操作系统随机生成,之后在这条连接上收发消息
作者回复: 非常详尽,谢谢分享!
作者回复: 因为服务器有设超时时间,通常如果1分钟内还没有接收到完整的HTTP请求(主要指请求行和头部),服务器会关连接
作者回复: 1、容器肯定需要从你的网卡出流量的,所以可能只是更换了IP,你可以用端口等捕获过滤器来抓包,目前端口是不会变的,用http.request.host等显示过滤器来找报文。
2、还是要在wireshark上,找到出流量的那个网卡,在那个接口上抓包。
作者回复: HTTP协议要求,实际从网卡上发出去的消息,是GET /wp-content/... HTTP/1.1\r\n,它对应着你在浏览器地址栏输入的是http://taohui.pub/wp-content/,也对应着curl http://taohui.pub/wp-content。host的作用在16课有更详细的介绍。
作者回复: 所有Web Server都遵守HTTP规范^_^
作者回复: HTTP协议也是一种TCP协议。所以没有明白你的问题。
BTW:你是用wireshark抓包吗?wireshark上显示为tcp协议通常是因为不知道怎么解析到具体的应用层协议,如果知道是什么协议可以右键点击decode as选择一个协议就可以显示
作者回复: 谢谢
作者回复: 1、只是默认端口,可以更改的。
2、不是,可以对应多个进程,可以参见我的《Nginx核心知识100讲》里的Nginx架构课程。
3、可以,mysql通常会开3306端口,因此如果你购买云服务器,3306等端口默认都是被防火墙关闭的
作者回复: 这是我的服务器配置错误了,今天下午我在www.taohui.pub上的Nginx上配置http2,80端口服务没配置好,现在已经改好了,你再试试看
作者回复: 都是这个系列的规范