2009-08-18 8 views
0

누군가 Wifi를 통해 다운로드 한 HTML 코드가 Edge/3G를 사용하는 동일한 URL의 콘텐츠와 다른 이유가 무엇입니까? 나는 Wifi의 출력이 3G의 출력보다 훨씬 많은 라인을 가지고 있기 때문에이 기능을 사용할 때 알아 차렸다. 코드를 분석해 보면 몇 줄 바꿈 만 감지되었음을 알 수있었습니다. 당신이 HTML을 사용하고 있기 때문에, 그것은 중간 계층은 클라이언트 정보에두고있는 무슨 함께 할 수있는 뭔가가있을 수Wifi vs. Edge/3G 및 componentsSeparatedByString (NSString)

답변

0

NSString *htmlCode = [NSString stringWithContentsOfURL:[NSURL URLWithString:@"www.any.url"]]; 
NSArray *htmlCodeByLines = [[NSArray alloc] init]; 

htmlCodeByLines = [htmlCode componentsSeparatedByString:@"\n"]; 

FG : 다음은 코드입니다. 다른 서버는 종종 자신의 능력이 무엇인지에 따라 다른 결과를 되돌려 보냅니다. 모바일 브라우저의 경우 특히 그렇습니다.

나는 패킷 스니퍼를 꺼내고 트래픽을 살펴볼 것을 제안했다. 벙어리 허브로 연결된 노트북의 Wireshark이 가장 좋지만, 까다로운 w/wireless/3G가 될 것입니다. 대신 대상 (서버) 시스템에서 실행할 수 있습니다. 특히, 두 가지 다른 구성을 위해 보내는 HTTP 패킷의 차이점을 찾으십시오.

한편, 수신 패킷의 내용이 똑같은지 확인할 수도 있습니다. 그것은 결국 당신에게 무언가가 스트립 물건이라고합니다. 아마 나는 생각할 수도 있지만 가능할 수도있다.

0

귀하의 Wifi 네트워크에 HTTP 프록시가 포함되어 있습니까?

+0

더 빠른 통신사 네트워크에는 투명한 HTTP 프록시가있어서 데이터 압축을 통해 빠른 다운로드가 가능합니다. – AlBlue

0

아니요. Wi-Fi에는 프록시가 없습니다. 여하튼, 나는 wifi 그러나 가장자리/3G에 대한 어떤 문제도 없다. 나는 그런 어려움을 정말로 기대하지 않았다. 그런데 문제는 내 제공자가 원인이라고 생각합니다. 불행히도 Wifi와 Edge/3G 간의 차이점을 비교하기 위해 패킷을 스니핑 할 수는 없습니다.

1

왜 HTML의 개행 문자를 사용하여 수행하려는 작업과 관련이 있다고 가정합니까? HTML의 개행에는 실제 의미가 없습니다.

모바일 브라우저에 최적화 된 사이트는 일반적으로 다운로드 속도를 높이기 위해 중요하지 않은 공백 (줄 바꿈 포함)을 제거합니다. 브라우저 스니핑은 물론 접속 한 IP 주소를 기반으로 서버에서 생성 된 결과에 차이가있을 수 있으며 HTTP 요청에 대해 투명하지 않은 HTML 프록시가있을 수 있습니다. 번역을하고있는 3G 네트워크.

요약하면 HTML 페이지에서 줄 바꿈 문자의 존재에 어떤 중요성도 연관되어서는 안되며 모바일 네트워크를 통해 이동하는 경우에는 사용자와 사이트 사이에 투명한 프록시가 없기를 기대해야합니다 . (HTTPS에서 사이트를 볼 수 있다면 명백한 이유로 투명 프록시가 데이터를 다시 쓰지 않을 것입니다.)

0

힌트 AlBlue에 감사드립니다. 한편 NSScanner를 사용하려고합니다. 모바일 장치에 보낼 때 공급자가 html 코드를 제거합니다 것 같아요.

관련 문제