본문 바로가기

HTTP 완벽가이드

1장 - HTTP 개관

1장

HTTP: 인터넷의 멀티미디어 배달부

  HTTP는 신뢰성 있는 데이터 전송 프로토콜을 사용
  • 데이터가 지구 반대편에서 오더라도 전송 중 소상되거나 꼬이지 않음을 보장
  • 사용자는 인터넷에서 얻은 정보가 손상된 게 아닌지 염려할 필요 X
  • 개발자는 인터넷 결함이나 약점에 대한 걱정 없이 고유 기능을 구현하는데 집중할 수 있다.


웹 클라이언트와 서버

웹 콘텐츠는 웹 서버에 존재

image

  • 웹서버는 보통 HTTP 서버라고 불린다.
  • 웹 서버는 인터넷의 데이터를 저장하고 HTTP 클라이언트가 요청한 데이터를 제공
  • HTTP 클라이언트와 HTTP 서버는 월드 와이드 웹의 기본 요소이다.


리소스

웹 리소스는 웹 콘텐츠의 원천

웹 리소스의 종류

  1. 정적파일 : 텍스트, HTML, MS Word, 어도비 아크로벳, JPEG, AVI 등등
  2. 동적 리소스
  • 어떠한 종류의 콘텐츠 소스도 리소스가 될 수 있다.

  • 미디어 타입

    • 수천 가지 데이터 타입을 다루기 때문에 MIME 타입이라는 데이터 포맷 라벨을 붙인다.
  • URI

    • 정보 리소스를 고유하게 식별하고 위치를 지정할 수 있다
    • URI에는 URN과 URL이 있다.
      • URL : 특정 서버의 한 리소스에 대한 구체적인 위치를 서술
      • URN : 한 리소스에 대해, 그 리소스의 위치에 영향 받지 않는 고유한 이름


트랜잭션

  • HTTP 트랜잭션은 요청명령과 응답 결과로 구성
  • HTTP 메서드라고 불리는 여러 종류의 요청 명령을 지원(GET, POST, DELETE, PUT, HEAD)
  • 모든 HTTP 응답 메시지는 상태 코드와 함께 반환
  • '웹페이지'는 보통 하나의 리소스가 아닌 리소스의 모음이다.(여러 객체로 이루어져 있다.)


메시지

  • 웹 클라이언트 -> 웹 서버 : 요청 메시지
  • 웹 서버 -> 웹 클라이언트 : 응답 메시지
  • HTTP 메시지는 시작줄, 헤더, 본문 3개로 구성
    • 시작줄 : 요청이라면 무엇을 해야하는지, 응답이라면 무슨 일이 일어났는지를 나타냄
    • 헤더 : 쌍점(:)으로 구분되어 있는 하나의 이름과 하나의 값으로 구성
    • 본문 : 어떤 종류의 데이터든 들어갈 수 있는 본문


TCP 커넥션

  • TCP/IP : HTTP는 신뢰성 있고 대중적인 TCP/IP 프로토콜에 통신을 맡긴다.
    • 오류 없는 데이터 전송
    • 순서에 맞는 전달
    • 조각나지 않는 데이터 스트림
    • TCP와 IP가 층을 이루는, 패킷 교환 네트워크 프로토콜의 집합
  • 접속, IP주소, 포트번호
    • IP주소와 포트번호를 이용해 클라이언트와 서버 사이에 TCP/IP 커넥션을 생성
      1. 서버의 URL에서 호스트명을 추출
      2. 호스트명을 IP주소로 변환
      3. URL에서 포트 번호가 있다면 포트번호를 추출
      4. 브라우저와 웹서버가 TCP 커넥션을 생성


웹의 구성요소

  • 프락시
    • 클라이언트와 서버 사이에 위치
    • 보안을 위해 사용
    • 요청과 응답을 필터링하여 신뢰할만한 데이터를 전달
  • 캐시
    • 자주 찾는 것의 사본을 저장해두는 특별한 종류의 HTTP 프락시 서버
    • HTTP는 캐시를 효율적으로 ㅈ동작하게 하고 캐시된 콘텐츠를 최신 버전으로 유지
  • 게이트웨이
    • 다른 서버들의 중개자로 동작하는 특별한 서버
    • HTTP 트래픽을 다른 프로토콜로 변환하기 위해 사용
  • 터널
    • 비 HTTP 데이터를 하나 이상의 HTTP 연결을 통해 그대로 전송해주기 위해 사용
  • 에이전트
    • 사용자를 위해 HTTP 요청을 만들어주는 클라이언트 프로그램(ex - 웹 브라우저)
    • 웹 요청을 만드는 애플리케이션은 뭐든 HTTP 에이전트
    • 웹 브라우저 뿐만 아니라 자동화된 사용자 에이전트도 있다

'HTTP 완벽가이드' 카테고리의 다른 글

9. 웹 로봇  (0) 2022.08.15
7. 캐시  (0) 2022.08.12
6. 프락시  (0) 2022.08.10
5. 웹서버  (0) 2022.08.06