FE에서 HTTP 통신을 알아야할까? 했지만 BE와 이야기를 하려면 기초적인 지식을 알아두어야 한다 생각하기에 .. 라는 이유와 정통과에서 통신에 대해서 많~이도 배웠지만 시간이 지날수록 잊혀져서 정리해두려고 한다.
글에서 나오는 클라이언트는 웹 브라우저를 뜻한다.
HTTP(HyperText Transfer Protocol), 하이퍼미디어 문서를 전송하기 위한 프로토콜이다. 주로 TCP/IP 통신을 사용하며 웹에서 이루어지는 데이터 통신의 기초이다.
HTTPS는 데이터 전송의 보안을 강화하기 위해 암호화된 HTTP의 보안 버전이다.
참조(하이퍼링크)를 통하여 한 문서에서 다른 문서로 즉시 접근할 수 있는 텍스트이다. 예를 들어, 흔히 작성하는 ppt에서 youtube 동영상을 참조 영상으로 보여줄 때 동영상의 주소를 하이퍼링크로 걸어두고 이를 통하여 ppt에서 youtube로 이동한다.
데이터가 전송되는 방식을 결정하는 규약이다. 데이터 송신자와 수신자가 "데이터는 이런 형태로 전송해주세요 !", "에러는 이렇게 제어해서 데이터를 주고 받아요 !"와 같이 서로 통신할 때 이해할 수 있는 규칙을 만든 것이다.
인터넷에 관련된 다양한 프로토콜의 집합을 뜻하며, HTTP, FTP, SNMP, TCP, IP, UDP 등이 TCP/IP에 포함된다.
클라이언트가 서버에거 접속을 요청하기 위해 SYN 패킷을 보낸다. 이때 클라이언트는 SYN/ACK 응답을 기다리는 SYN_SENT상태가 된다.
서버는 클라이언트로부터 SYN 요청을 받고, 이를 수락한다는 ACK와 SYN FLAG가 설정된 패킷을 발송하고 클라이언트가 ACK로 응답하기를 기다린다. 이때 서버는 SYN_RECEIVE 상태가 된다.
클라이언트는 서버에게 ACK를 보내고 이로써 클라이언트와 서버가 연결되고, 데이터가 오가게 된다. 이때 서버의 상태는 ESTABLISHED이다.
하위계층에서 상위계층으로 이동할 때마다 (사진의 송신측) 필요한 정보를 헤더에 붙이면서 캡슐화를 하고 상위계층에서 하위계층으로 이동할 때 (사진의 수신측) 헤더를 제거하는 역캡슐화를 통하여 정보를 전달한다.
ex) Name: 서울역, Locator: 서울 용산구 한강대로 405
네비게이션아~ 서울역으로 가자! , 서울 용산구 한강대로 405로 가자!
한 마디로 요약하면 URL과 URN은 리소스를 표현하는 수단이라 할 수 있으며 이 둘은 URI의 하위 개념이라 생각하면 될 것 같다.