2015-01-23 4 views
10

HTTP CORS 사양에서 5.6 Access-Control-Allow-Headers5.3 Access-Control-Expose-Headers의 차이점은 무엇입니까? I는 역전되었다HTTP CORS 스펙에서 Allow-Headers와 Expose-Headers의 차이점은 무엇입니까?

[허용 헤더] 헤더는 헤더 필드 이름이 실제 요청

UPDATE 동안 사용될 수 플라이트 요청에 대한 응답의 일부로서 나타낸다 누군가는이 헤더 중 하나가 모든 요청 (비행 전)에 대해 전송된다고 말할 것입니다. 그러나, 이 아직 있습니다.5.9 Access-Control-Request-Headers

은 [요청 헤더를] 헤더는 플라이트 요청 BTW

의 일부로서, 실제 요구에 사용되는 헤더를 나타내고, I는 (W3C)을 조심스럽게 5.9 말로 얼마나 좋아 그래서 그 요청 헤더_Something_ Request Header이라는 필드를 가질 수 있습니다.

스펙에서 완전히 분실했습니다.이 프로세스를 더 잘 이해할 수있는 다이어그램이 있습니까?

답변

11

액세스 제어 - 허용 - 헤더 실제 요청을 할 때 사용할 수있는 HTTP 헤더를 나타 내기 위해 프리 플라이트 요청에 대한 응답으로 사용

.

액세스 제어 - 노출 - 헤더

이 헤더는 브라우저가 접근 가능한 서버 화이트리스트 헤더를 할 수 있습니다.

출처 : : 예를 들어 https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS

+4

그래서 기본적으로 이러한 이름은 잘못되었습니다. 전자는 요청 헤더이고 후자는 스크립트에 표시되는 응답 헤더입니다. –

+0

[MDN 설명서] (https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/AccessControl-Allow-Headers)는 다음과 같이 설명합니다. _ "Access-Control-Allow-Headers 응답 헤더는 실제 요청을 할 때 Access-Control-Expose-Headers를 통해 사용할 수있는 HTTP 헤더를 나타내는 프리 플라이트 요청에 대한 응답으로 사용됩니다. " –

0

그냥이 심하게라는 이름의이 심하게 명명되지 않은되는 위의 코멘트를 명확히한다.

이들은 서로 다른 기능을 제공합니다.

  • 액세스 제어 허용 헤더는 서버의 상태를 변경할 수있는 헤더를 지정합니다.
  • Access-control-expose-headers에는 특정 응답 헤더의 값을 반환하는 get 메서드 getResponseHeader() 메서드가 있습니다. CORS 요청 중에 getResponseHeader() 메소드는 간단한 응답 헤더에만 액세스 할 수 있습니다. 다른 헤더에 액세스하려면 여기에 헤더를 지정해야합니다.
+0

그들은 별개의 기능을 제공하지만 그 이름은 매우 유사합니다. 그들은 분명히 나쁘게 지명되었습니다. –

관련 문제