HyperText Transfer Protocol 의 약자로 ‘통신 구조’
프론트앤드 서버와 클라이언트간의 통신 , 그리고 백앤드 프론트앤드 간의 통신에 사용된다.
● 핵심요소
-HTTP의 통신방식은 요청/응답으로 구조 되어있다.
-클라이언트가 HTTP requewst를 서버에 보내면 서버는 HTTP response를 보내는 구조.
HTTP는 Statelss이다 .
-State(상태)를 저장 하지 않는다는 뜻.
-즉 , 요청이 오면 응답만 할뿐 여러 요청 /응답 끼리 연결되어 있지 않다는 뜻이다.
각각의 요청/응답은 독립적인 요청/응답 이다.
ex) 클라이언트가 요청을 보내고 응답을 받은후 , 잠시 뒤 다시 요청을 보낼때 , 전에 보낸 요청/응답은 독립적인 요청/응답이다. (로그인)
HTTP request 메세지는 크게 3부분으로 구성된다.
(header 와 body는 아래에 설명 되어있습니다.)
👉Start Line
👉HTTP Method
👉Request target
👉HTTP Version
HTTP 버전 . (1.0 , 1.1 , 2.0 등이 있다.)
ex)
GET / search HTTP / 1.1.
Response도 request와 마찬가지로 크게 3부분으로 구성되 있다.
👉Statuts Line
Response의 상태를 간략하게 나타내주는 부분.
3부분으로 구성되어 있다.
👉HTTP 버젼
Status code : 응답 상태를 나타내는 코드 , 숫자로 되어 있는 코드 .
ex) 200
Status text : 응답 상태를 간략하게 설명해주는 부분.
ex) “Not Found"
HTTP/1.1 404 Not Found
👉Headers
Response 의 headers와 동일.
하지만 response에서만 사용되는 header 값들이 있다.
Ex) User-Agent 대신 Server 헤더가 사용된다.
👉Body
해당 request에 대한 추가 정보 (addtional information)를 담고 있는 부분.
Key. : value 값으로 되어있다 ( 콜론 (:)이 사용됨).
ex) Host : google.com. => Key = Host , Value = google.com
headers도 크게 (general ,request , entity)headers 로 나뉘지만, 3부분으로 구성되어 있다는것만 알고 있어도 괜찮다.
자주 사용되는 header 정보는 아래와 같다.
해당 request의 실제 메세지/내용.
Body가 없는 request도 많다.
ex) GET request들은 대부분 body가 없는 경우가 많음 .
해당 request가 의도한 action을 정의하는 부분.
Meothods에는 GET ,POST , PUT , DELETE , OPTIONS 등등
주로 GET 과 POST가 쓰임.
👉 GET
👉POST
👉OPTIONS
👉PUT
👉DELETE
👉200 OK
👉301 Moved Permanently
👉400 Bad Request
👉401 Unauthorized
👉403 Forbidden
👉404 Not Found
👉500 Internal Server Error
출처 : Wecode
surim velog