Application 계층에 속한 Protocol
로 컴퓨터들끼리 HTML파일을 주고받을 수 있도록 하는 소통방식 또는 약속
이다.
①Requset/Response(요청/응답)으로 구성됨
Request : Start Line/Headers/Body
로 구성되어 있다.
[Start Line의 구성]
[Headers: 해당 요청에 대한 추가 정보(메타 데이터)를 담고있는 부분]
[Body: 해당 요청의 실제 내용. 주로 Body를 사용하는 메소드는 POST다.]
Request : Status Line/Headers/Body
로 구성되어 있다.
[Status Line의 구성]
ex) HTTP/1.1 404 Not Found: HTTP 1.1 버전으로 응답하고 있는데, 프론트엔드에서 보낸 요청(ex. 로그인 시도)에 대해서 유저의 정보를 찾을 수 없기 때문에(Not Found) 404 상태 메세지를 보낸다.
[Headers: 응답의 추가 정보(메타 데이터)를 담고있는 부분]
[Body: 해당 요청의 실제 내용. 주로 사용하는 Body 데이터의 타입은 JSON이다.]
응답의 형태에 따라 데이터를 전송할 필요가 없는 경우엔 Body가 없을 수도 있다
. ②Stateless
: 각각의 HTTP 통신은 독립적
이기 때문에 과거의 통신(요청/응답)에 대한 내용을 전혀 알지 못 한다. 그렇기 때문에 매 통신마다 필요한 모든 정보를 담아서 요청을 보내야 한다
.
① TCP(Transmission Control Protocol)
: 신뢰성 구축에 신경을 많이 쓴 대신 느리다. HTTP /0.9 ~ /2은 TCP를 사용하고 있다.
3-way-handshake
TCP 통신을 이용
하여 데이터를 전송하기 위해 네트워크 연결을 설정(Connection Establish) 하는 과정
이다.
② UDP(Uer Datagram Protocol)
: 신뢰성을 신경 쓰지 않아 빠르다. (Quic: 신뢰성 문제를 보안한 UDP 기반 protocol)
사용자가 이용하는 웹 페이지 서버에 보내는 정보들을 제 3자가 볼 수 없게 하면서 접속한 사이트가 믿을 만한 곳인지 알려주는 기능을 한다.
[출처: Youtube - 우아한 Tech / 얄팍한 코딩사전]