[Web] HTTP Protocol과 메소드/상태 코드
웹 창시자인 팀 버너스 리가 초창기 웹과 함께 만든 프로토콜(Protocol)이 바로 HTTP Protocol(이하 HTTP)입니다.
HTTP는 0.9버전부터 사용되기 시작했습니다.
하지만, 0.9버전은 웹 문서를 단순히 읽을 수만 있게 읽기 기능만 지원했기 때문에, 오래가지 못했습니다.
그 후 1996년, HTTP 1.0버전이 나왔고, 3가지 메소드(Method)를 지원하기 시작했습니다.
↓
GET, POST, HEAD
그러다 2001년, HTTP 1.1버전이 발표되었고, 8가지의 메소드(Method) 지원으로 확장되었습니다.
↓
GET, POST, HEAD, OPTIONS, PUT, DELETE, TRACE, CONNECT
각 메소드(Method)들의 특징은 다음과 같습니다.
GET : 요청(Request) Data에 대한 인수 값을 URL에 담아 웹 서버에 전송하는 방식입니다.
POST : 요청(Request) Data에 대한 인수 값을 HTTP Body 부분에 담아 웹 서버에 전송하는 방식입니다.
HEAD : 서버 쪽 Data를 검색하고 요청하는 데 사용됩니다.
OPTIONS : 자원에 대한 Request/Response에서 관련된 선택 사항에 대한 정보를 요청할 때 사용됩니다.
PUT : 메시지에 포함되어 있는 Data를 지정한 URI에 지정된 이름으로 저장합니다.
DELETE : URI에 지정되어 있는 자원을 서버에서 지우려할 때 사용됩니다.
TRACE : Request 메시지의 최종 수신처까지 루프백 검사용으로 사용됩니다.
CONNECT : 웹 서버에 프록시 기능을 요청(Request)할 때 사용됩니다.
일반적으로, GET과 POST 방식을 많이 사용하는데,
POST 메소드(Method)의 경우에는 URL에 요청(Request) Data를 담지 않고, HTTP Body 부분에 담아 전송하기 때문에,
다른 사람이 링크를 이용해 해당 페이지를 볼 수 없다는 장점이 있습니다.
즉, POST 방식은 GET 방식에 비해 보내려는 인수 값의 노출이 없기 때문에 보안 측면에서 더 안전합니다.
(보통, 게시판과 같이 누구나 볼 수 있는 화면은 접근을 쉽게 하기 위해 GET 방식을 많이 사용하고,
글을 저장이나 수정, 삭제하는 경우 POST 방식을 사용합니다.)
HTTP 응답/상태 코드
100번 대 : 정보 전송
200번 대 : 성공
300번 대 : 리다이렉션
400번 대 : 클라이언트 측 에러
500번 대 : 서버 측 에러
상태 코드 |
내용 |
상태 코드 |
내용 |
100 |
Continue |
404 |
Not Found |
101 |
Switching Protocols |
405 |
Method Not Allowed |
200 |
OK |
406 |
Not Acceptable |
201 |
Created |
407 |
Proxy Authentication Required |
202 |
Accepted |
408 |
Request Time-Out |
203 |
Not-Authorized Information |
409 |
Conflict |
204 |
No Content |
410 |
Gone |
205 |
Reset Content |
411 |
Length Required |
206 |
Partial Content |
412 |
Precondition Failed |
300 |
Multiple Choices |
413 |
Request Entity Too Large |
301 |
Moved Permanently 다른 URL에 대한 정보는 Location 헤더에 나타난다. |
414 |
Request URI Too Large |
302 |
Moved Temporarily |
415 |
Unsupported Media Type |
303 |
See Other |
500 |
Internal Server Error |
304 |
Not Modified |
501 |
Not Implemented |
305 |
Use Proxy |
502 |
Bad Gateway |
400 |
Bad Request |
503 |
Service Unavailable |
401 |
Unauthorized |
504 |
Gateway Time-Out |
402 |
Payment Required |
505 |
HTTP Version not Supported |
403 |
Forbidden - 접근 금지(권한 없음) |
|
|
'Web' 카테고리의 다른 글
[Web/JWT] 토큰 기반 인증 (1) | 2020.05.16 |
---|
댓글을 사용할 수 없습니다.