HTTP 완벽가이드 <1>

김태완·2021년 9월 13일
0

HTTP는 HTML 문서와 같은 리소스들을 가져올 수 있도록 해주는 프로토콜(통신 규약)이다.
인터넷에는 수 많은 이미지, 동영상, HTML 페이지 등과 같은 데이터가 돌아다니고 있다.
HTTP는 데이터들이 저장되어 있는 웹 서버로부터 사용자들의 웹 브라우저로 빠르고, 간편하고, 정확하게 전달해준다.

리소스

  • 웹 서버는 웹 리소스를 관리하고 제공한다.
  • 리소스는 테스트 파일, 이미지, HTML 페이지와 같은 정적 요소와
    요청에 따라 컨텐츠를 생성하는 동적 요소로 이루어져있다.

MIME 타입(미디어 타입)

  • 원래의 사용 용도는 각기 다른 전자 메일 시스템 사이에서 메일이 오갈때 발생하는 문제를 해결하기 위해 사용되었다.
  • HTTP에서 멀티미디어 컨텐츠를 설명하고 라벨을 붙이기 위해 사용된다.
  • 웹 서버는 HTTP 객체 데이터에 MIME 타입을 붙인다.
  • 웹 브라우저는 웹 서버로 부터 받은 응답의 MIME를 보고 다룰수 있는 객체인지 확인하다.

URI

  • 인터넷 리소스를 가리키는 이름이다.
  • URL와 URN 두 종류가 있다.
  • URL은 리소스 식별자의 가장 흔한 형태이고 한 리소스에 대한 구체적인 위치를 나타낸다.
  • URN은 리소스에 고유한 이름을 붙이기 때문에 리소스의 위치가 바뀌어도 영향을 받지 않는다.
  • URN은 리소스의 현재 위치를 알려 주는 인프라가 없기 때문에 널리 사용되는 않고 있다.

HTTP 트랜잭션

  • 요청 명령과 응답 결과로 이루어져있다.
  • 요청 명령은 HTTP 메서드를 통해 서버에게 어떤 동작을 해야하는지 알려준다.
  • 응답 결과는 상태 코드를 통해 응답 상태를 나타낸다.
  • 웹 페이지는 이미지, CSS 파일, JS 스크립트와 같은 여러 리소스로 이루어져있기 때문에 여러번의 HTTP트랜잭션을 수행한다.

메시지

  • 메시지는 시작줄, 헤더, 본문으로 이루어져 있다.
  • 시작줄은 요청이면 무엇을 해야하는지 응답이면 무슨 일이 일어났는지 나타낸다.
  • 헤더는 :을 기준으로 이름과 값으로 나타내고 본문과 구분을 위해 마지막 줄은 빈 줄로 끝난다.
  • 본문은 필요에 따라 요청시 서버로 데이터를 보내거나 응답시 서버로 부터 데이터를 받을때 사용한다.

TCP 커넥션

  • HTTP는 오류 없는 전송, 순서에 맞는 전달, 조각나지 않는 데이터 스트림을 위해 TCP를 사용한다.
  • HTTP 메시지를 보내기 전에 먼저 TCP 커넥션을 맺어야한다.
  • TCP 커넥션을 맺기 위해서는 서버의 IP 주소와 포트 번호를 알아야 한다.

    http://223.130.195.95:80
    https://www.naver.com:443
    https://www.naver.com

    • 첫번째 주소는 IP주소와 포트 번호를 직접 입력했기 때문에 쉽게 알 수 있다.
    • 두번재 주소는 포트 번호는 알 수 있지만 IP주소가 없고 "www.naver.com"이라는 도메인 명으로 되어있다.
      이 때는 DNS 서버에 도메인명으로 검색 요청을 보내면 IP주소를 응답해준다.
    • 세번째 주소는 포트 번호가 없지만 HTTP는 80, HTTPS는 443이 기본값으로 되었있다.

0개의 댓글