Programing

필요한 HTTP 응답 헤더

lottogame 2020. 12. 9. 07:41
반응형

필요한 HTTP 응답 헤더


서버에서 클라이언트로 보내려면 어떤 HTTP 응답 헤더가 필요합니까?

HTTP 응답 오버 헤드를 최소화하기 위해 HTTP 응답 헤더를 최적화하기 위해 노력하고 있습니다. "오버 헤드"가 다소 과장된 것을 알고 있지만 깨끗한 출력을 좋아합니다.

중복 캐시 헤더를 보내는 웹 사이트가 많이 있습니다.

예 :

모두를 지정하는 중복 ExpiresCache-Control: max-age, 또는 둘 다 지정 Last-ModifiedETag.

  • 출처
  • HTTP / 1.1 : 헤더 필드 정의

그것은 당신이 필요한 것으로 정의에 따라 달라집니다 : 아무리 상황이 무엇인지 모든 응답과 함께 전송되지 말아야합니다 헤더 필드가없는,하지만 당신은 정말 헤더 필드가 있어야 보내기. 닫히는 유일한 헤더 필드는 Date이지만 필요하지 않은 상황도 있습니다.

의 말투에서 RFC 2119 , 용어 MUST의 일이 규격의 요구 사항과 요구 사항을 충족하지 않는 것은 잘못된 것이 있다는 것을 의미한다. RFC에 의해 정의 된 헤더 필드가 없습니다 7230 , 7231 , 7232 , 7233 , 7234 , 또는 7235 해야 원 서버로 전송 될 모든 경우에는 .


예를 들어 다음 헤더는 생략 할 수 있습니다 (아마도 전송해야 함).

7.1.1.2. 데이트

원 서버 Date는 협정 세계시에서 현재 인스턴스의 합리적인 근사치를 제공 할 수있는 시계가없는 경우 헤더 필드를 보내지 않아야 합니다. Date응답이 1xx (정보) 또는 5xx (서버 오류) 클래스의 상태 코드에있는 경우 원본 서버는 헤더 필드를 보낼 수 있습니다. 원 서버 Date는 다른 모든 경우에 반드시 헤더 필드를 전송해야합니다 .

인용문의 마지막 문장에 유의하십시오. Date헤더 필드는 반드시 원본 서버가 UTC의 날짜의 "합리적인 근사치"를 제공 할 수 있지만, 그 자체를 잘못 설명에서 서버를 중지 아무것도없는 경우 전송.

7.4.2. 섬기는 사람

원 서버 Server는 응답에서 필드를 생성 할 수 있습니다.

3.3.2. 내용 길이

[정의 된 수의 한정된 케이스]를 제외하고,이없는 경우 Transfer-Encoding원본 서버는 Content-Length전체 헤더 섹션을 보내기 전에 페이로드 본문 크기를 알 때 헤더 필드를 보내야합니다.

Content-Length의 주제에 Transfer-Encoding대해 둘 다 전송할 수 없습니다.이 경우 응답 길이는 "서버가 연결을 닫기 전에 수신 한 옥텟 수에 의해 결정됩니다."

3.1.1.5. 컨텐츠 타입

경우 Content-Type헤더 필드가 존재하지 않는, 수신자가 하나의 미디어 유형 가정 할 수있다 application/octet-stream(RFC2046, 제 4.5.1) 또는 유형을 결정하기 위해 데이터를 검사합니다.


특정 헤더가 필요할 수있는 상황이 있습니다. 예를 들면 다음과 같습니다.


응답의 세부 사항에 따라 다르지만 일반적으로 원본 서버의 응답에는 다음이 있어야합니다.

  • 데이트
  • 컨텐츠 타입
  • 섬기는 사람

그리고 Content-Length, Transfer-Encoding 또는 Connection : close.

캐싱을하려면 Cache-Control을 추가하십시오 (예 : max-age 사용). 일반적으로 만료는 더 이상 필요하지 않습니다. 클라이언트가 유효성을 검사 할 수 있도록하려면 Last-Modified 또는 ETag를 추가하십시오.

참고 URL : https://stackoverflow.com/questions/4726515/what-http-response-headers-are-required

반응형