Back-End/HTTP

[HTTP][모든 개발자를 위한 HTTP 웹 기본 지식] - URI와 웹 브라우저의 요청 흐름

얄루몬 2022. 2. 14. 12:02

 

💻본 포스팅은 '모든 개발자를 위한 HTTP 웹 기본 지식 - 김영한'님의 강의를 듣고 작성되었습니다.
https://inf.run/kXeZ

 

모든 개발자를 위한 HTTP 웹 기본 지식 - 인프런 | 강의

실무에 꼭 필요한 HTTP 핵심 기능과 올바른 HTTP API 설계 방법을 학습합니다., - 강의 소개 | 인프런...

www.inflearn.com


[URI란?]

[URI란?]
통합 자원 식별자는 인터넷에 있는 자원을 나타내는 유일한 주소이다. URI의 존재는 인터넷에서 요구되는 기본조건으로서 인터넷 프로토콜에 항상 붙어 다닌다. URI의 하위개념으로 URL, URN 이 있다.

📌출처: https://ko.wikipedia.org/wiki/%ED%86%B5%ED%95%A9_%EC%9E%90%EC%9B%90_%EC%8B%9D%EB%B3%84%EC%9E%90

URI

 

 

 

[URL과 URN]

  • URL과 URN은 URL의 하위 개념으로
  • URN은 Uniform Resource Name으로 리소스에 이름을 부여하는 것이다
  • URL은 Uniform Resource Location으로 리소스가 있는 위치를 지정해주는 것이다.
  • 리소스의 위치는 변할 수 있지만 이름은 변하지 않는다. 
  • 우리는 URI와 URL을 같은 의미로 사용할 것이다. 

 

 

 

[URL의 문법]

 

  • 프로토콜은 어떤 방식으로 자원에 접근할지에 대한 클라이언트와 서버 간의 규칙이다.

 

  • 호스트명네트워크에 연결된 장치(컴퓨터, 파일 서버, 복사기, 케이블 모뎀 등)들에게 부여되는 고유한 이름이다.

 

  • 포트 번호 같은 경우 생략 가능한 경우가 있다.
    • HTTP: 80port를 쓰기에 HTTP라면 생략 가능하다.
    • HTTPS(HTTP에 강력한 보안을 더한 것이다.): 443port를 쓰기에 HTTPS라면 생략 가능하다.

 

  • PATH는 리소스의 경로, 계층적 구조를 파악하게 해준다. 

 

  • query parameter
    • key와 value로 이루어진 형태다.
    • ?로 시작해서 &로 추가 해준다. 
    • query parameter & query string이라고 한다. 
      • 이때 왜 쿼리 스트링이냐면 숫자가 들어와도 전부 문자로 변환하기 때문이다.

 

  • fragment[#~] - HTML 내부 북마크로 사용되고 서버로는 넘어가지 않는다.

 

 

 

[웹 브라우저 요청 흐름]

  1. HTTP 요청 메세지를 웹 브라우저가 서버로 보낸다. 
  2. Socket을 통해 TCP/IP로 전달해준다.
  3. 데이터 전송 단위인 패킷을 생성해서 HTTP 메시지를 내부에 포함해서 전송해준다.
  4. 서버에서 TCP/IP로 둘러쌓인 것은 버린 뒤 HTTP 메시지를 해독한 후 응답한다.
  5. 응답 HTTP를 다시 요청한 곳으로 돌려 보낸다. 
  6. 웹 브라우저가 이를 렌더링 후 사용한다.

 

 

 

[웹 브라우저 요청 흐름 - 그림 설명]

1. 웹 브라우저가 서버에 HTTP 요청 메시지 생성
2. TCP/IP로 요청 메시지 전달 후 패킷으로 다시 전달 과정
2에서 생성된 패킷의 상세 이미지
3. 요청 패킷의 전달과 서버 도착
4. 서버에서 HTTP 응답 패킷 전달
5. 응답 HTTP 전달 후 렌더링