2009-09-09 4 views
3

HTTP Accept Headers의 클라이언트가 지정한 형식의 데이터로 응답하는 웹 응용 프로그램을 개발했습니다. Firefox를 사용하면서 모든 것이 잘 작동했지만 크롬과 IE에서 내 CSS/HTML을 확인하고 싶었을 때 둘 다 알 수없는 콘텐츠 유형 인 것처럼 색인 페이지를 다운로드하려고했습니다.IE 및 Webkit에서 의도 한대로 헤더 해석 해석

일부 연구를 한 후 IE가 많은 수의 HTTP 수락 헤더를 보내고 나머지는 시작 부분에 image/* 콘텐츠 형식의 목록이 있음을 알게 된 this article을 발견했습니다.

이로 인해 내 웹 응용 프로그램에서 색인 페이지를 image/jpeg으로 보내려고했습니다.

그럼 언제 무시하고 언제 Accept Accepters를 사용해야하는지 어떻게 알 수 있습니까?

+0

IE를 사용하여 페이지에 액세스하려고 할 때 응용 프로그램에서 어떤 내용 유형을 선택합니까? IE 수락 헤더가 손상된 경우에도 "text/html"과 일치해야합니다. – trendels

+0

앱이 이미지를 제공 할 수 있기 때문에 image/jpeg와 일치합니다. 질문 : P – Jrgns

+0

OK, 나는 인덱스 페이지가 HTML로만 존재할 것이라고 생각했습니다. – trendels

답변

1

가장 좋은 방법은 수락 헤더에 같은 가중치를 가진 유형이있는 경우 자체 서버 가중치를 적용하는 것입니다. 따라서 동일한 q 값 (또는 없음)을 가진 text/html과 image/* 둘 다 있으면 기본적으로 text/html 환경 설정을 지정할 수 있습니다.

+0

저는 이것을 지금 구현하고 싶었습니다. IE가 text/html을 MIME 형식으로 보내지 않고 크래프트와 */*를 많이 보내지 않는다는 것을 깨달았습니다. 따라서 text/html이 image/*보다 큰 경우에도 text/html이 없으므로 이미지/*를 선택합니다. – Jrgns

+0

당신의 IE는 정확히 무엇을 보내나요? –

+0

이 링크를 확인하십시오. 또한 질문에 언급 : http://www.gethifi.com/blog/browser-rest-http-accept-headers – Jrgns

0

IE 및 Safari와 같이 분명히 깨진 Accept 헤더를 보내는 프로그램의 차단 목록을 유지하기 만하면됩니다 (기사 참조). User-Agent 헤더가 블랙리스트와 일치하면 Accept 헤더를 무시하고 그렇지 않으면 무시하십시오.

IE 수락 헤더의 문제는 처음에 image/*을 넣는 것이 아니라 q 매개 변수를 통해 이미지 위에 HTML 또는 XHTML을 선호한다고 나타내지는 않습니다. AFAIK, Accept 헤더의 요소 순서는 중요하지 않습니다.

+0

허용 목록 : 네, 사실, 유일한 문제는 사용자 에이전트 헤더가 신뢰할 수없는 경우가 있기 때문에 멀리 떨어져 있으려고합니다. 요소의 순서 : 내가 사용하는 파서는 우선 순위가 주어지지 않으면 첫 번째가 우선한다는 것을 전제로합니다. – Jrgns