2017-12-23 21 views
1

http2의 RFC는 http://httpwg.org/specs/rfc7540.html 말한다 : 방법 : 방식과 : 경로 의사 헤더 필드의 모든 HTTP/2 요청이 정확히 하나의 유효한 에 대한 값을 포함해야한다HTTP/2 푸시 약속 기관의 의사 헤더

:

푸시 약속에 대한

(이 권한을 포함하지 않습니다)

서버는의 값을 포함해야한다 : 권한이 의사 헤더 필드 서버가 신뢰할 수있는을

내 질문은, 서버 푸시 약속 요청 프레임 들면, 서버가 항상 기관의 의사를 포함해야합니까 헤더 또는 그것을 포함하기로 결정하면 서버가 권한을 가진 기관이어야합니까?

+0

첫 번째는 요청에 관한 것이고 두 번째는 응답에 관한 것입니까? – Ryan

+0

여기에 언급 된 네 개의 의사 헤더 필드는 요청 의사 헤더 필드로만 정의됩니다. 정의 된 하나의 응답 의사 헤더 필드가있다 - 'status' – lf215

답변

2

:authority 헤더가 항상 PUSH_PROMISE 프레임에 포함되어야한다고 생각합니다. 클라이언트가 다른 호스트 이름에 대해 동일한 연결을 사용할 수 있기 때문에 인증서와 IP 주소가 그에 따라 해결되는 경우입니다.

권한 프레임을 추가하면 클라이언트는 푸시 된 자원과 검색해야 할 자원을 정확히 일치시킵니다.

:authority 헤더가 없으면 클라이언트는 밀어 자원 https://example.com/background.png 가정 할 수 있지만 나중에 자원이 대신 https://images.example.com/background.png 것을 example.com에서 다운로드 한 HTML에서 발견; URI가 일치하지 않기 때문에 클라이언트는 푸시 된 자원을 사용하지 않고 해당 자원에 대한 요청을 발행합니다.

이 설명 이외에 :authority없이 PUSH_PROMISE을 내보내고 다양한 브라우저가 어떻게 작동하는지 볼 수 있습니다. 구현 동작을 사용하여 사양을 강화하는 경우가 있습니다.