웹 창시자인 팀 버너스 리가 초창기 웹과 함께 만든 프로토콜(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 
요청에 사용한 메소드가 해당 URL에서 지원이  불가능하다는 것을 나타냄.

 200

OK 

 406

 Not Acceptable

 201

Created
클라이언트의 PUT 요청이 성공적일 때 

 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
클라이언트에서 요청한 Body가 서버에서 처리하기에 너무 크다는 것을 나타낸다.

 301

Moved Permanently 
브라우저의 요청을 다른 URL로 항시 전달

다른 URL에 대한 정보는 Location 헤더에 나타난다.

 414

 Request URI Too Large

 302

Moved Temporarily 
브라우저의 요청을 임시 URL로 바꾼다.

 415

 Unsupported Media Type

 303

 See Other

 500

 Internal Server Error
서버가 클라이언트의 요청을 실행할 수 없을 때 나타난다.
일반적으로, SQL 인젝션 취약점이 존재하는지 확인할 때 유용하게 사용된다.

 304

 Not Modified

 501

 Not Implemented

 305

 Use Proxy

 502

 Bad Gateway

 400

 Bad Request
클라이언트가 서버에 잘못된 요청을 했다는 것을 나타낸다.

 503

 Service Unavailable

 401

Unauthorized 
서버가 요청에 대해 HTTP 인증 확인을 요구하는 것을 의미한다.

 504

 Gateway Time-Out

 402

 Payment Required

 505

 HTTP Version not Supported

 403

 Forbidden - 접근 금지(권한 없음)

 

 



'Web' 카테고리의 다른 글

[Web/JWT] 토큰 기반 인증  (1) 2020.05.16