[HTTP강의] TCP/UDP와 URI

2022. 4. 21. 00:17개발공부/HTTP

728x90

본 글은 인프런 김영한님 강의를 정리한 글입니다. 자세한 강의내용은 강의를 통해 들어보시길 추천드립니다.


데이터 통신할 때 IP 주소로 전송 데이터를 보냅니다. 전송 데이터 외 데이터의 순서와 통신 상대 간 신뢰를 주고받을 수 있는 프로토콜이 필요한데, TCP가 그 역할을 합니다.

TCP(Transmission Control Protocol)

  • PORT, 전송 데이터 순서에 대한 정보를 담아 전달합니다.
  • *3-way-handshaking 방식으로 통신을 전달받습니다.
    • *1.Syn(client to server) -> 2.Syn + Ack(server to client) -> 3.Ack(client to server) 마지막 단계에선 전송 데이터도 함께 전달하기도 합니다.

UDP(User Datagram Protocol)

  • TCP와 달리 IP에 가까운 형태로, PORT만 담아 전달합니다.
  • 데이터 순서나 3-way-handshaking이 없기 때문에 신뢰성 확보를 하지 못합니다.
  • 통신 속도는 TCP에 비해 빠릅니다.

PORT(=항구)

  • PORT는 IP 주소에 더해 세부주소라고 생각하면 됩니다. 같은 IP를 사용해 웹 브라우저, 영상 및 음악 재생에 대한 HTTP 통신요청을 할 수 있는데 그 때 구분짓는 주소가 port입니다.
    IP가 아파트라면 port는 동-호수 입니다.

URI(Uniform Resource Identifier)

  • URL(location), URN(name)이 URI 안에서 위치, 이름으로 존재하는 고유 식별 정보입니다. 이를 이용해 필요한 요청을 하고, 요청 위치에 대한 데이터를 받아올 수 있습니다.
  • URN보다 URL가 위치에 따라 읽기 편하기 때문에 브라우저에 요청을 작성할 때 주로 사용합니다.
  • URL 구성은 아래와 같이 이루어져 있습니다.
  • https://www.google.com:443(보통 생략)/search?hl=ko&hw=hello#bookmarkpoint
  • protocol:host:port:path:query_param(string):fragment

DNS(Domain Name System)

  • IP 주소가 가독성이 떨어지고, 변경될 경우 불편함이 있기 때문에 영문으로 IP 주소를 대신 부여한 이름 도메인입니다.

웹 브라우저 전송요청과 흐름

  • 도메인 주소를 웹 브라우저 창에 입력하면, IP 주소를 찾아서, 웹 브라우저 HTTP 요청을 생성합니다. HTTP 요청 양식은 GET /serach?hl=ko&hw=hello#bookmarkpoint HTTP/1.1 \n Host: www.google.com와 같습니다.
  • TCP/IP로 통신의 신뢰성을 확인한 뒤, HTTP 전송 데이터를 담아 요청 HTTP를 전달하는 흐름입니다.

참조: 인프런 김영한님 HTTP 강의

'개발공부 > HTTP' 카테고리의 다른 글

[HTTP강의] HTTP 캐시  (0) 2022.05.26
[HTTP강의] HTTP 헤더  (0) 2022.05.25
[HTTP강의] HTTP 상태코드  (0) 2022.05.24
[HTTP강의] HTTP 메서드  (0) 2022.05.23
[HTTP강의] HTTP 특징  (0) 2022.05.23