HTTP - "모든 개발자를 위한 HTTP 웹 기본 지식" 정리노트 - 1

송준섭 Junseop Song·2023년 6월 20일
0

네트워크

목록 보기
1/6
post-thumbnail

⛳️ 목적

이 글은 김영한님의 인프런 강의 '모든 개발자를 위한 HTTP 웹 기본 지식' 강의를 듣고 배운 것을 두고두고 보기 위해 정리하는 글이다.


🗓️ 2023.06.21 작성 ▽

① 인터넷-네트워크

📌 IP(인터넷 프로토콜)

❗️ IP

지정한 IP 주소에 데이터를 전달
패킷(Packet)이라는 통신 단위로 데이터를 전달
패킷에는 출발지 IP, 목적지 IP 등의 정보가 포함

❗️ IP 프로토콜의 한계

  • 비연결성: 패킷을 받을 대상이 없거나 서비스 불능 상태여도 패킷은 전송
  • 비신뢰성: 중간에 패킷이 사라지거나 패킷이 순서대로 오지 않아도 알 방법이 없음
  • 프로그램 구분: 같은 IP를 사용하는 서버에서 통신하는 애플리케이션이 둘 이상이면 어떤 애플리케이션과 통신하는지 알 수 없음

📌 TCP(전송제어 프로토콜)

❗️ 인터넷 프로토콜 스택 4계층

❗️ 프로토콜 계층 처리 과정

❗️ TCP는 IP 패킷의 단점을 보완한다.
TCP/IP 패킷에는 출발지 PORT, 목적지 PORT, 전송 제어, 순서, 검증 정보 등 여러 정보가 포함

❗️ TCP 특징

  • 연결지향: TCP 3 way handshake(가상 연결)
  • 데이터 전달 보증
  • 순서 보장
  • 신뢰할 수 있는 프로토콜
  • 현재는 대부분 TCP가 사용

📌 UDP(사용자 데이터그램 프로토콜)

❗️ UDP

기능이 거의 없음
TCP의 특징인 연결지향, 데이터 전달 보증, 순서 보장 모두 UDP에선 이뤄지지 않음
데이터 전달 및 순서가 보장되진 않지만 단순하고 빠름
PORT, 체크섬 정보 정도만 추가된 IP와 비슷함
애플리케이션에서 추가 작업이 필요


📌 PORT

❗️ PORT

같은 IP 내에서 프로세스를 구분

0부터 65535까지 할당이 가능
0부터 1023까지는 잘 알려진 포트로 사용하지 않는 것이 좋음

  • FTP: 20, 21
  • TELNET: 23
  • HTTP: 80
  • HTTPS: 443

📌 DNS(도메인 네임 시스템)

❗️ DNS

IP는 기억하기 어렵고 언제든 변경될 수 있음 -> DNS 존재 이유
전화번호부와 비슷한 역할
도메인 명을 IP 주소로 변환
우리는 google의 IP주소를 알지 못해도, 심지어 변하여도 알아차리지 못하고 google.com으로 접속



② URI와 웹 브라우저 요청 흐름

📌 URI(Uniform Resource Identifier)

❗️ URI

Uniform: 리소스 식별하는 통일된 방식
Resource: 자원, URI로 식별할 수 있는 모든 것
Identifier: 다른 항목과 구분하는데 필요한 정보
URI는 URL, URN을 모두 포함한 용어

  • URL: 리소스가 있는 위치(Location)를 지정
  • URN: 리소스에 이름(Name)을 부여, 사실상 잘 사용되지 않음

❗️ URI 분석

  1. scheme
    주로 프로토콜을 사용
  • 프로토콜: 어떤 방식으로 자원에 접근할 것인가 하는 약속 규칙
  • ex) http(주로 80포트), https(주로 443포트), ftp, ,,,
  1. userinfo
    URL에 사용자정보를 포함해서 인증
    거의 사용하지 않음

  2. host
    호스트명(www.google.com)
    도메인명을 사용하거나 IP 주소를 직접 사용

  3. PORT
    접속 포트
    일반적으로 생략
    생략시 http는 80, https는 443

  4. path
    리소스 경로
    계층적 구조
    ex) /home/file1.jpg, /members/, /items/iphone12, ,,,

  5. query
    key=value의 형태를 가짐
    ?로 시작, &로 추가 가능
    ex) ?keyA=valueA&keyB=valueB
    query parameter, query string 등으로 불림
    웹서버에 제공하는 파라미터로, 문자 형태를 가짐

  6. fragment
    html 내부 북마크 등에 사용
    서버에 전송되지는 않음


📌 웹 브라우저 요청 흐름

❗️ URI를 통한 요청 예시

위처럼 URI를 클라이언트가 입력하면 아래와 같은 순서로 서버에 HTTP 메시지가 전송

이때 위의 예시에서 만들어진 HTTP 메시지는 다음과 같이 생겼다고 볼 수 있음

만들어진 패킷 모습 예시

TCP/IP 패킷에 담긴 목적지 IP, PORT로 전달되고 목적지 서버에서는 HTTP 메시지를 확인할 수 있음
그 후 서버는 클라이언트에 HTTP 응답 메시지를 보냄

클라이언트 웹 브라우저는 응답 메시지를 받아 HTML을 렌더링해 띄워줌

0개의 댓글

관련 채용 정보