HTTP란?
HyperText Transfer Protocol의 약자.
HTML 문서를 교환하기 위해 만들어진 Protocol(통신규약)
즉 웹상에서 네트워크로 서버끼리 통신을 할 때, 어떠한 형식으로 서로 통신을 하자고 규정해 놓은 '통신형식' 또는 '통신구조'라고 보면 된다.
프론트엔드 서버와 클라이언트 간 혹은 백엔드와 프론트엔드 서버간 통신에 사용된다.
HTTP는 TCP/IP 기반으로 되어있다.
HTTP의 핵심요소
HTTP 통신 방식
HTTP는 기본적으로 요청/응답(request/response)구조로 되어있다.
클라이언트가 HTTP request를 서버에 보내면 서버는 HTTP response를 보낸다
클라이언트와 서버의 모든 통신이 요청과 응답으로 이뤄진다.
HTTP Request구조
HTTP request 메시지는 크게 3부분으로 구성된다.
Start line
말 그대로 HTTP request의 첫 라인
HTTP request의 start line또한 3부분으로 구성되어 있다.
GET
, POST
, PUT
, DELETE
, OPTIONS
등등이 있다.GET
과 POST
가 많이 쓰인다./login
예시 :
GET /search HTTP/1.1
Headers
해당 request에 대한 추가정보(additional information)을 담고있는 부분
예를 들어, request 메시지 body의 총 길이 등.
Key : Value 값으로 되어있다. (:
이 사용된다)
예시 :
HOST: google.com
Key =HOST
, Value =google.com
Headers도 크게 세 부분으로 나눠지지만 (general headers
, request headers
, entity headers
) 너무 자세하므로 세 부분으로 구성되어 있다는것만 알아도 된다.
Body
해당 request의 실제 메시지/내용
Body가 존재하지않는 request도 많다
(예를 들어, GET request들은 대부분 body가 없는 경우도 많다)
HTTP Request의 예시
HTTP Response의 구조
Response도 request와 마찬가지로 크게 3부분으로 구성되어있다.
Status Line
Response의 상태를 간략하게 나타내주는 부분
3부분으로 구성되어 있다.
Headers
Body
자주 쓰이는 HTTP Methods
GET
이름 그대로 어떠한 데이터를 서버로 받아(get)올때 주로 사용하는 Method
데이터 생성/수정/삭제 없이 받아오기만 할 떄 사용된다
가장 간단하고 많이 사용되는 HTTP Method
언급한대로 주로 데이터를 받아올 때 사용되기 때문에 request에 body를 안보내는 경우가 많다
POST
데이터를 생성/수정/삭제 할 때 주로 사용되는 Method
데이터를 생성 및 수정 할 때 많이 사용하기 때문에 대부분의 경우 request body가 포함되서 보내진다
알고있으면 좋은 HTTP Methods
OPTIONS
주로 요청 URI에서 사용할 수 있는 Method를 받아 올 때 사용된다.
예를 들어, /update uri에서 어떤 method를 요청 가능한가(GET? POST?)를 알고 싶으면 먼저 OPTIONS 요청을 사용해서 확인하게 된다.
PUT
POST와 비슷하다. 데이터를 생성할 때 사용되는 Method
POST와 비슷하기 때문에 PUT을 사용하는 곳도 있고, POST만 쓰는 곳도 있는데 최근 몇년 사이에는 POST에 밀려 잘 사용 안되는 추세
DELETE
특정 데이터를 서버에서 삭제 요청을 보낼 떄 쓰이는 Method
PUT과 마찬가지로 POST에 밀려서 잘 사용안되는 추세
자주 쓰이는 HTTP Status Code
200 : OK
301 : Moved Permanently
400 : Bad Request
401 : Unauthorized
403 : Forbidden
404 : Not Found
500 : Internal Server Error