맨날 볼 때 마다 헷갈리는 http header 정보와 status code 를 정리
HTTP Header Field
Accept | 클라이언트측이 Content-Type으로 받는 데이터의 종류. MIME사양의 데이터 타입으로 표현된 것이다. text/html, application/xhtml+xml, */*: (MIME타입) HTML(HTML5), XHTML |
Accept-Charset | 클라이언트측이 받은 문자 코드 세트 |
Accept-Encoding | 클라이언트측이 Content-Encoding으로 받은 인코딩 방식. 보통 데이터 압축 형식을 나타낸다. gzip, deflate: deflate: date_compressed + crc (8bit optional) gzip: 10 bit (control bit) + deflate gzip이 control bit을 포함하고 있어서 정보 다룰 때 용이하다. |
Accept-Language | 클라이언트측이 받는 언어의 종류. ko-KR,ko;q=0.8,en-US;q=0.6,en;q=0.4: 한국어는 ko, 영어는 en이다. q는 우선순위를 의미한다. |
Accept-Ranges | 데이터의 일부만 Request하는 Range를 지정한 경우 서버가 해당 기능을 가지고 있는지의 여부를 클라이언트에 통지한다. |
Cache-Control | 캐시에 대해 특정 조작을 수행한다. no-cache: 캐시를 사용하지 않는다. no-store: 캐시를 보관하지 않는다. must-revalidate: 캐시 재확인을 사용하지 않는다. public: 모든 공유/비공유 캐시에서 응답을 캐시할 수 있도록 지정한다. private: 응답 메시지의 전체 또는 일부분을 단일 사용자만이 사용하며, 절대로 공유캐시에 의해 캐시해서는 안됨을 지정. |
Connection | 응답 송신 후에 TCP에 계속 접속할지, 아니면 연결을 끊을지를 나타내는 통신 옵션을 지정한다. |
Content-Type | 메시지 본문의 미디어 타입이 어떤 것인지를 가리킨다. text/html; charset=UTF-8: 메시지 본문은 UTF-8로 인코딩된 text 혹은 html 파일이다. |
Cookie | 쿠키정보를 보낸다. 쿠키는 서버와 클라이언트가 상호작용하기 위한 특별한 변수들의 집합이며, 보안상의 이유로 인코딩을 해서 보내기도 한다. |
Date | Request나 Response가 작성된 날짜를 가리킨다. |
Expires | 메시지 본문의 유효기간을 나타낸다. |
GET | / HTTP/1.1: GET메소드로 / 를 요청한다. 사용하는 프로토콜은 HTTP 1.1이다. |
Host | Request를 받는 서버의 IP주소와 포트 번호 |
HTTP/1.1 | Status Code 참조 |
If-Modifified-Since | 지정한 날짜 이후 정보가 갱신된 경우에만 Request를 실행하려고 필드값으로 이 날짜를 지정한다. 보통 클라이언트측에서 캐시에 저장한 정보를 비교하고, 이것이 오래된 경우에 새 정보를 받으려 할 때 사용한다. |
Location | 정보의 정확한 장소를 나타낸다. Request의 URI가 상대이름(Relative name)으로 지정된 경우, 절대이름으로 했을 때의 정보의 위치를 통지하기 위해 사용한다. |
P3P | P3P(Privacy Preferences Project)필드는 웹사이트가 개인정보의 수집, 사용, 분배에 대해 어떠한 행위를 하는지 브라우져에게 알리는 표준이다. 이 정보는 해당 사이트가 개인정보에 대해 어떠한 행위를 하는지에 대한 정보를 나타낸다. |
Pragma | 데이터의 캐시를 허용할지의 여부를 나타내는 통신 옵션을 지정한다. no-cache: 캐시를 허용하지 않는다. |
Proxy-Connection | 우회연결을 나타내는데, Keep-Alive는 접속 유지를 시킨다는 것을 의미한다. |
Referer | 하이퍼링크를 거쳐 어느 페이지를 읽은 경우 등에 링크 대상인 URI를 가리킨다. |
Server | 서버 소프트웨어의 명칭이나 버전에 관한 정보 nginx: 웹 서버 소프트웨어로 가벼움과 높은 성능을 목표로 한다. 웹 서버, 리버스 프록시 및 메일 프록시 기능을 가진다. |
User-Agent | 클라이언트 소프트웨어의 명칭이나 버전에 관한 정보 |
Vary | 응답이 변형될 수 있는 차원을 표현한다. Accept-Encoding, User-Agent: 엔티티가 다중 자원을 가지고 있어서 요청한 헤더를 지정한 목록이 상황에 따라 변할 수 있다는 것을 나타낸다. |
X-UA-Compatible | 브라우저가 어떤 렌더링 엔진을 사용할지를 결정한다. |
Status Code
HTTP Status Code (HTTP1.1: RFC 2616) | ||
상태코드는 서버가 요구 메시지를 수신하여 처리한 결과를 알려주는 세 자리의 결과 번호이다. 첫 번째 자리 숫자는 응답의 종류에 대한 분류 기호이며, 나머지 두 자리 숫자는 일련번호이다. |
||
1XX | 1XX: (Infomational) 클라이언트의 요청이 접수되었고, 현재 처리하고 있다는 의미 | |
100 | (Continue: 계속) 요청된 초기 부분은 접수되었고, 계속해서 요청할 수 있다 | |
101 | (Switching Protocols: 프로토콜 변환) 서버는 Upgrade 헤더 필드에 명시된 프로토콜로 교환하기 위한 클라이언트 요청에 따르고 있다는 것을 의미 | |
2XX | 2XX: (Success) 요청 받은 것이 성공적으로 처리되었음 | |
200 | (OK) 클라이언트의 요청이 성공적이었으며, 서버는 요청한 데이터를 포함하여 응답한다 | |
201 | (Created: 생성되었음) 서버측에서 자원이 생성되었음 | |
202 | (Accepted: 접수되었음) 클라이언트의 요청을 받아들이기만 했을 뿐 아직 완료되지 않은 상태 | |
203 | (Non-Authoritative Information: 비인증정보)리턴된 메타정보는 서버에서 사용할 수 있는 정의 세트가 아니고 다른 복사본에서 수집된 것 | |
204 | (No Content: 내용이 없음) 응답할 때 주어지는 헤더이나 응답된 실제 내용이 없다는 의미 | |
205 | (Reset Content: 내용을 지움)새로운 문서가 없더라도 브라우저에서 창을 초기화하고, 문서를 새로 표시한다는 의미 | |
206 | (Partial Content: 부분적 내용)서버가 요청된 크기의 데이터를 반환하고 있다는 의미 | |
3XX | 3XX: (Redirection) 파일들이 이동되었음 | |
300 | (Multiple Choices: 복수선택) 요청된 문서가 여러 곳에 있을 때, 어떤 문서를 원하는지 묻는다 | |
301 | (Moved Permanently: 영구이동) 요청된 문서의 위치가 영구적으로 변했음을 알린다 | |
302 | (Redirected) 요청된 URI는 일시적으로 새로운 URI를 가리킨다 | |
303 | (See Other: 다른 것을 참조) 요구된 자원이 별도의 URI에 임시적으로 보관되어 있다 | |
304 | (Not Modified: 변경되지 않았음) 브라우저의 캐시에 들어있는 문서가 최신 문서이니 그것을 그대로 사용하라는 의미 | |
305 | (Use Proxy: 프록시를 사용할 것) 요청된 문서를 프록시를 통해서만 전송받으라는 것을 나타낸다 | |
307 | (Temporary Redirection: 임시 이동) 요청된 URI가 일시적으로 이동했음을 의미 | |
4XX | 4XX: (Client Error) 클라이언트의 요청이 불안전하며, 요청을 성공시키려면 다른 정보가 필요함 | |
400 | (Bad Request: 잘못된 요구) 요청에 문법적인 오류가 있다 | |
401 | (Unauthorized: 인증되지 않았음) 클라이언트가 잘못된 인증정보를 Authorization 헤더에 넣었음 | |
402 | (Payment Required) 아직 HTTP로 구현되지 않았다 | |
403 | (Forbidden: 금지되었음) 클라이언트의 인증정보에 상관없이 페이지에 접근을 거부한다는 것을 의미 | |
404 | (Not Found: 찾을 수 없음) 클라이언트가 요청한 자원이 서버에 없다 | |
405 | (Method Not Allowed: 메소드를 사용할 수 없음) 클라이언트가 사용한 메소드가 이 URI에 대해 지원하지 않는다 | |
406 | (Not Acceptable: 접수할 수 없음) 클라이언트가 지정한 URI는 존재하지만 클라이언트가 원하는 형식이 아니다 | |
407 | (Proxy Authentication Required: 프록시 인증 필요) 이 코드는 401과 유사하지만 클라이언트는 먼저 프록시에서 자신을 인증해야한다는 것을 표시한다 | |
408 | (Request Timeout: 요구시간초과) 클라이언트의 모든 요청이 지정한 시간동안 처리되지 않았음을 의미 | |
409 | (Conflit: 충돌) 다른 요청이나 서버의 구성과 충돌이 있음을 의미한다 | |
410 | (Gone: 내용물이 사라졌음) 요청된 문서가 사라지고, 새로운 주소는 알 수 없음 | |
411 | (Length Required: 길이가 필요함) Content-Length가 없는 요구 접수를 거부했다 | |
412 | (Precondition Failed: 사전 조건 충족 실패) 명시된 조건에 의해 요청을 평가하여 False 값을 가지는 경우이다 | |
413 | (Request Entity Too Large: 요구 엔티티가 너무 큼) 서버는 실제 본문이 너무 커서 요청을 처리할 수 없다 | |
414 | (Request-URI Too Long: Request-URI가 너무 긺) 서버는 요청된 URI가 너무 커서 요청을 처리할 수 없다 | |
415 | (Unsupported Media Type: 지원되지 않는 media type) 서버는 실제 본문이 지원되지 않는 형식이라 처리할 수 없다 | |
416 | (Requested range not satisfiable) 서버는 어떤 유효한 값도 포함하지 않는 Range 헤더를 찾았다 | |
417 | (Expectation Failed) Expect헤더에서 명시된 조건을 만족될 수 없다 | |
5XX | 5XX: (Server Error) 서버가 에러를 발생시켰으며 요구를 처리할 능력이 없음을 인지한 경우 | |
500 | (Internal Server Error: 서버 내부 에러) 서버의 일부가 멈추었거나 설정에서 오류가 나타났음 | |
501 | (Not Implemented: 구현되지 않았음) 클라이언트의 요청된 행위가 서버에서 수행되될 수 없음을 의미 | |
502 | (Bad Gateway: 불량 게이트웨이) 서버가 다른 서버로부터의 응답이 적절하지 않았음 | |
503 | (Service Unavailable: 서비스를 사용할 수 없음) 서비스를 일시적으로 제공할 수 없으나 앞으로 복구된다는 의미 | |
504 | (Gateway Timeout: 게이트웨이 시간 초과) 게이트웨이 서버가 시간 내에 요구를 완료하려는 시도에서 접근한 업스트림 서버로부터 응답을 수신하지 못했을 경우 | |
505 | (HTTP Version Not Supported: 지원되지 않는 HTTP 버전) 서버가 요구 메시지에서 사용된 HTTP 규약버전을 지원하지 않거나 거부했을 경우 |