所以我最近得到了一个节点MCU Lua V1,我开始连接到我的WiFi,并从https://en.wikipedia.org/wiki/NodeMCU#HTTP_server加载默认的HTTP服务器。兴奋地我在我的ADSL路由器上做了一个端口转发,并要求朋友连接以查看我的Hello World响应。我的朋友有苹果设备(iPhone/iPad)无法加载网站。与Android设备或电脑的朋友在浏览网站时没有任何问题。我试着用我的iPad在同一个WiFi网络上。它也有这种行为。为了弄清楚发生了什么,我在iPad上尝试了不同的浏览器。我做了一个Wireshark跟踪,看到NodeMCU向iPad发送响应。但iPad一直显示连接错误,或者你是离线消息。认为它可能是缺少的html头我改变了响应节点MCUU发送到:iOS忽略NodeMCU http服务器响应和浏览器显示无连接
<!DOCTYPE html><html><body><h1>My First Heading</h1><p>My first paragraph.</p></body></html>
仍然iPad显示相同的消息。
所以我的问题是为什么iOS的行为是这样的,什么阻止它,使浏览器认为它没有互联网连接? iOS上的浏览器是以这种方式行事,还是操作系统在做一些奇怪的事情。为了让iOS设备看到网页,我需要做些什么?
谢谢你解决这个问题,它现在可以工作,为什么只有iOS设备拒绝这个作为一个有效的响应?看起来,iOS网络堆栈拒绝该消息,并尝试再次获取TCP数据包2次。为什么添加HTTP/1.0 ...解决了似乎只发生在iOS设备上的问题。 –
你不得不问苹果......我只能猜测其他浏览器在处理响应时有点“宽大”和宽容。海事组织这实际上是不好的行为,因为它掩盖了根本的错误 –