IT 지식/IT 정보

HTTP 메소드 & 상태코드

Security Engineer 2023. 2. 5. 23:57

HTTP Method ( 메소드 )


GET → 지정된 정보(URL)를 요청한다.
HEAD  GET과 같으나 body의 내용을 제외하고 header의 내용만 필요로 할 때 사용한다.
PUT/POST 글이나 파일을 올릴 때 사용한다. PUT FTP, POST HTTP 정보를 올릴 때 사용한다. 
로그인과 같은 보안의 목적이 있을 때에는 POST를 사용한다.
DELETE 해당 위치에 있는 정보를 지울 때 사용한다.
TRACE  Server로부터 받았던 내용을 확인하기 위해 Client에서 Echo Test를 한다.
CONNECT  Client Proxy를 통해서 Server SSL통신을 하고자 할 때 사용된다.
OPTION 어떤 HTTP Method에 대해 응답해줄 수 있는지 물을 때 사용한다.

 

CONNECT Method :
Proxy
를 통하여 Client Server SSL 통신을 하려고 할 때, 생성된 key는 보안을 위해 Proxy가 모르도록 해야한다.
CONNECT Method
 Client Server SSL handshake를 맺도록 하기위해 

Client Proxy에게 Server TCP Connection을 맺으라 지시할 때 쓰인다.
Client
 Server handshake가 끝나고 대칭키가 설정 된 이후, 

양자간의 모든 통신은 키를 이용하여 암호화 되고 Proxy에게 보내진다. 이때 Proxy data relay의 역할만 수행한다.
Proxy
 key를 모르기 때문에 data를 검사할 수 없으며, end-to-end 보안이 보장된다.

 

 

 

HTTP Status Code ( 상태코드 )

 

1xx : Informational
- 100 (Continue) :
서버에서 응답을 처리했으며 Client가 나머지 요청을 계속 하면 된다.
- 101 (Switching Protocol) : Client
 protocol 전환을 요청했으며 Server는 이를 승인중이다.
- 102 (Processing) :
부가적인 요청이 포함되어있는 요청을 받았으며, 이를 처리하기 위해 시간이 오래 걸린다.

 

2xx : Success
- 200 (OK) : 
서버가 요청을 제대로 처리했다. (주로 서버가 페이지를 제공했을 때 사용됨)
- 201 (Created) :
 요청이 정상적으로 처리되었으며 새로운 정보가 만들어졌다.(파일이나 글을 올릴 때)
- 202 (Accepted) : 
요청을 접수했지만 아직 처리하지 않았다.
- 203 (Non-Authoritative Information) : 
요청을 제대로 접수했지만 정보를 다른 소스에서 제공한다.
- 204 (No Content) : 
요청을 접수했지만 콘텐츠를 제공하지 않는다.(없다)
- 205 (Reset Content) : 
요청을 접수했지만 콘텐츠를 제공하지 않는다.

(Client가 문서보기를 재설정할 것을 요구한다. → 새 입력을 위한 양식 비우기)
- 206 (Partial Content) : 
서버가 요청의 일부만 성공적으로 처리했다.
- 207 (Multi-Status) : 
여러 개의 부가적이 요청이 포함되어 있는 요청을 받아 이것에 대한 각각의 응답이 있다.
- 208 (Already Reported) : 
이미 응답이 되었다.
- 226 (IM Used) : 
서버에서 제대로 응답하였으며, 현재 응답은 하나 이상의 인스턴스를 포함한다.

 

3xx : Redirection
- 300 (Multiple Choices) : 
서버가 요청에 따라 여러 조치를 선택한다. Client Agent 에 따라 수행할 작업을 선택하거나, Client에게 작업 목록을 선택할 수 있도록 제공한다.
- 301 (Moved Permanently) : 
요청받은 페이지가 영구히 다른 곳으로 옮겨졌다.(자동으로 새 위치로 전달)
- 302 (Found) : 
임시 이동. 서버가 다른 위치의 페이지로 응답하였으나 이후 요청 시 원래의 위치를 사용한다.
- 303 (See Other) : 
요청에 대한 응답을 GET Method를 사용하여 다른 위치에서 찾을 수 있는 경우에 사용.
- 304 (Not Modified) : 
수정되지 않음. 페이지의 콘텐츠를 표시하지 않는다. Client가 마지막으로 페이지를 요청한 후 페이지가 변경되지 않으면 이 응답을 함께 표시하도록 서버가 구성됨.
- 305 (Use Proxy) : Proxy 
사용. 프록시를 사용하여 요청한 페이지만 액세스 할 수 있다. Client가 사용할 Proxy를 가리키는 것이기도 함.
- 307 (Temporary Redirect) : 
임시 Redirection. 현재 서버가 다른 위치의 페이지로 요청에 응답하지만 향후 원래 위치를 계속 사용.
- 308 (Permanent Redirect) : 
영구 Redirection. 계속 다른 위치의 페이지로 요청에 응답한다.

 

4xx : Client Error
- 400 (Bad Request) : 
서버에서 요청 구문을 인식하지 못함.
- 401 (Unauthorized) : 
인가되지 않음.
- 403 (Forbidden) : 
금지됨. 서버에서 응답을 거절함.(인가, 인증과 연관 없음)
- 404 (Not Found) : 
찾을 수 없음.(서버에 존재하지 않는 페이지에 대한 요청이 들어온 경우)
- 405 (Method Not Allowed) : 
서버에서 해당 요청에 대한 method가 허용되지 않음.
- 406 (Not Acceptable) : 
허용되지 않음. 서버에서 해당 요청에 대한 콘텐츠 특성으로 응답할 수 없다.
- 407 (Proxy Authentication Required) : Client
에서 Proxy에서의 인증이 필요함.
- 408 (Request Timeout) : 
제한시간 초과. 서버에서의 요청 대기시간이 초과됨.
- 409 (Conflict) : 
충돌. 서버가 요청을 수행 중 충돌이 발생함. 응답에 충돌에 대한 정보가 포함됨.
- 410 (Gone) : 
사라짐. 요청된 리소스가 영구적으로 삭제되었을 경우 사용. 이전에 존재했던 정보에 대해 응답 시 사용됨.
- 411 (Length Required) : 
유효한 콘텐츠 길이 헤더 입력란이 없는 경우 서버에서 요청을 수락하지 않는다.
- 412 (Precondition Failed) : 
요청의 사전조건이 만족되지 않는다.
- 413 (Request Entity Too Large) : 
요청이 너무 커서 서버에서 처리가 불가능함.
- 414 (Request-URI Too Long) : 
요청 URI (일반적으로 url)이 너무 길어서 서버에서 처리가 불가능함.
- 415 (Unsupported Media Type) : 
서버에서 지원하지 않는 형식의 미디어 타입이 요청되었을 경우.
- 416 (Requested Range Not Satisfiable) : 
처리할 수 없는 요청 범위. 요청이 페이지에서 처리할 수 없는 범위에 해당됨.
- 417 (Expectation Failed) : 
서버에서 Expect 요청 헤더 입력란의 요구사항을 만족할 수 없는 경우.

 

 

5xx : Server Error
- 500 (Internal Server Error) : 
서버에 오류가 발생하여 요청을 수행할 수 없다.
- 501 (Not Implemented) : 
구현되지 않음. 요청을 수행할 수 있는 기능이 없다.(서버가 요청 Method를 인식하지 못할 때)
- 502 (Bad Gateway) : 
서버가 게이트웨이나 Proxy의 역할을 하고 있을 때 상위 서버에서 잘못된 응답을 받음.
- 503 (Service Unavailable) : 
서비스 사용 불가. 서버가 오버로드되었거나 다운되었을 경우.
- 504 (Gateway Timeout) : 
서버가 게이트웨이나 Proxy의 역할을 하고 있을 때 상위 서버에서 제한시간 내에 응답을 받지
못했다.
- 505 (HTTP Version Not Supported) : 
지원이 불가능한 HTTP 버전의 요청을 받았을 때.