HTTP Header Field 와 Status Code

 

맨날 볼 때 마다 헷갈리는 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 규약버전을 지원하지 않거나 거부했을 경우


 

This entry was posted in Network, WEB/WAS and tagged , . Bookmark the permalink.

댓글 남기기