그래서 저는 최근 nodeMCU 루아 V1을 얻었습니다. WiFi를 연결하기 시작했고 https://en.wikipedia.org/wiki/NodeMCU#HTTP_server의 기본 HTTP 서버를로드했습니다. Excitedly 나는 ADSL 라우터에서 포트를 만들었고 친구들에게 내 안녕하세요 세상 응답을 볼 것을 요청했습니다. 사과 장치 (iPhone/iPad)가있는 내 친구는 웹 사이트를로드 할 수 없습니다. 안드로이드 기기 나 컴퓨터가있는 친구가 사이트를 보는 데 아무런 문제가없는 경우. 나는 같은 와이파이 네트워크에있는 내 iPad를 사용해 보았다. 그것은 또한이 행동을했다. 무슨 일이 일어나고 있는지 알아 내기 위해 iPad에서 다른 브라우저를 사용해 보았습니다. Wireshark 추적을 수행하고 NodeMCU가 iPad에 응답을 보내는 것을 보았습니다. 그러나 iPad는 연결 오류를 보여 주거나 오프라인 메시지입니다. HTML 헤더가 누락 된 것 같아서 nodeMCU가 보내는 응답을 변경했습니다.iOS가 NodeMCU를 무시함 http 서버 응답 및 브라우저에 연결이 없음
<!DOCTYPE html><html><body><h1>My First Heading</h1><p>My first paragraph.</p></body></html>
여전히 iPad는 동일한 메시지를 보였습니다.
제 질문은 iOS가 이런 식으로 행동하는 이유, 차단하는 이유와 브라우저에 인터넷 연결이 없다고 생각하는 이유입니다. iOS의 브라우저가 이러한 방식으로 작동하는지 아니면 이상한 일을하는 OS인지 확인하십시오. iOS 기기에서 웹 페이지를 보려면 무엇을해야합니까?
이 문제를 해결해 주셔서 감사합니다. 작동하지 않는 이유는 이것이 유효한 응답이 아닌 iOS 기기 일뿐입니다. iOS 네트워크 스택이 메시지를 거부하고 TCP 패킷을 다시 2 회 수신하려고 시도하는 것 같습니다. HTTP/1.0을 추가하는 것이 iOS 기기에서만 발생하는 문제를 해결하는 이유는 무엇입니까? –
애플에게 물어보아야 할 것이다. 나는 다른 브라우저가 응답을 처리 할 때 좀 더 "관대"하고 용서할 수 있다고 추측 할 수있다. IMO는 근본적인 오류를 가려 내기 때문에 실제로 나쁜 행동입니다. –