필요한 HTTP 응답 헤더
서버에서 클라이언트로 보내려면 어떤 HTTP 응답 헤더가 필요합니까?
HTTP 응답 오버 헤드를 최소화하기 위해 HTTP 응답 헤더를 최적화하기 위해 노력하고 있습니다. "오버 헤드"가 다소 과장된 것을 알고 있지만 깨끗한 출력을 좋아합니다.
중복 캐시 헤더를 보내는 웹 사이트가 많이 있습니다.
예 :
모두를 지정하는 중복 Expires
및 Cache-Control: max-age
, 또는 둘 다 지정 Last-Modified
및 ETag
.
- 출처
- 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) 또는 유형을 결정하기 위해 데이터를 검사합니다.
특정 헤더가 필요할 수있는 상황이 있습니다. 예를 들면 다음과 같습니다.
- 지속적인 연결을 지원하지 않는 원본 서버 는 1xx 상태 코드가없는 모든 응답에서를 전송 해야
Connection: close
합니다. - 원 서버 는 405 (Method Not Allowed) 응답에서 헤더를 생성 해야
Allow
합니다. - 401 (Unauthorized) 응답을 생성하는 원 서버 는 최소한 하나의 챌린지를 포함 하는 헤더 필드를 전송 해야
WWW-Authenticate
합니다.
응답의 세부 사항에 따라 다르지만 일반적으로 원본 서버의 응답에는 다음이 있어야합니다.
- 데이트
- 컨텐츠 타입
- 섬기는 사람
그리고 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
'Programing' 카테고리의 다른 글
char의 길이는 정확히 8 비트입니까? (0) | 2020.12.09 |
---|---|
파일 또는 디렉토리가 변경 될 때 쉘 스크립트를 실행하는 방법은 무엇입니까? (0) | 2020.12.09 |
#if에서 사용되는 정의되지 않은 상수의 값은 무엇입니까? (0) | 2020.12.09 |
웹 인터페이스를 통해 TeamCity 서버 다시 시작 (0) | 2020.12.09 |
Internet Explorer 용 양식 제출에서 문자 인코딩 설정 (0) | 2020.12.09 |