[HTTP 완벽 가이드] 1장 HTTP 개관

Milk717·2022년 10월 2일
0

HTTP

목록 보기
1/7

2022년 7월 ~ 2022년 8월 동안 http 완벽 가이드 스터디를 진행하면서 노션에 정리해놨던 내용입니다.

1.3 리소스

  • 정적 콘텐츠 리소스
    • 텍스트, 이미지, 동영상 등등
  • 동적 콘텐츠 리소스
    • 데이터베이스, 콘텐츠를 생산하는 프로그램

1.3.1 미디어 타입

  • http는 웹에서 전송되는 객체에 MINE(Multipurpose Internet Mail Extenstions) 타입이라는 데이터 포멧 라벨을 붙인다.
    • Content-type 헤더에 포함되어 있음.
    • JEPG ⇒ Content-type: image/jpeg
    • HTML ⇒ Content-typs: text/html

1.3.2 URI

  • URI는 URN과 URI를 포함하는 상위 개념임.
  • 통상적인 관례로 URI와 URL을 같은 의미로 많이 사용함.
  • URI ⇒ 통합 자원 식별자, Uniform Resource Identifer
    • URI ⇒ Unitform Resource Locator
      • 어느 경로로 가야 리소스에 접근할 수 있는지 명확하게 명시한다.
      • 현재 대부분 이 방식을 사용한다.
      • URL 표준 포맷
        • scheme ⇒ http://
        • 인터넷 주소 ⇒ google.com
        • 웹 서버의 리소스 ⇒ /mail/u/0/
    • URN ⇒ Unitform Resource Name
      • 리소스의 이름으로 리소스에 접근한다.
      • 리소스의 이름이 변하지 않는 한 리소스의 위치가 변경되어도 접근할 수 있다.
      • 하지만 널리 채택되지 않았고, 아직 실험중인 기술이다.

1.4 트랜잭션

  • 트랜잭션은 요청 명령과 응답 결과로 구성되어 있다.

1.4.1 메서드

(3장에서 자세히 다룸)

  • GET ⇒ 서버에서 클라이언트로 지정한 리소스를 보내라
  • PUT ⇒ 클라이언트에서 서버로 보낸 데이터를 지정한 이름의 리소스로 저장하라
  • DELETE ⇒ 지정한 리소스를 서버에서 삭제하라
  • POST ⇒ 클라이언트 데이터를 서버 게이트웨이 애플리케이션으로 보내라
  • HEAD ⇒ 지정한 리소스에 대한 응답에서, HTTP 헤더 부분만 보내라

1.4.2 상태 코드

(3장에서 자세히 다룸)

  • 흔히 쓰이는 상태 코드들
    • 200 ⇒ 응답 성공
    • 302 ⇒ 다시 보내라. 다른 곳에서 리소스를 가져가라
    • 404 ⇒ 없음. 리소스를 찾을 수 없다.
  • 사유 구절
    • 응답 코드 뒤에 오는 설명 메시지. 설명을 위해 포함된 것일 뿐 응답 처리에는 상태코드가 사용됨.
    • 아래 두 가지 경우 동일한 응답 처리로 취급됨.
      • 200 OK
      • 200 Success

1.5 메시지

  • 시작줄
    • 요청 메시지 일 때 ⇒ 어떤 메서드를 사용해 요청할지?
      • GET /test/hi-there.txt HTTP/1.0
    • 응답 메시지 일 때 ⇒ 어떤 상태코드 응답인지
      • HTTP/1.0 200 OK
  • 헤더
    • Content-type, Content-length 등의 정보가 담겨있음.
    • 헤더의 마지막 줄은 빈 줄로 끝남.
  • 본문
    • 요청할 때 ⇒ 리소스 등 데이터를 실어서 보냄
    • 응답일 때 ⇒ 클라이언트로 데이터를 반환

1.6 TCP 커넥션

1.6.1 TCP/IP

  • 애플리케이션 계층 프로토콜.
  • HTTP 세부사항에 대해 신경쓰지 않아도 됨.
  • HTTP 네트워크 프로토콜 스택
    • 애플리케이션 계층 : HTTP
    • 전송 계층 : TCP
    • 네트워크 계층 : IP
    • 데이터 링크 계층
    • 물리 계층
  • 웹브라우저 연결 절차
    • 호스트명을 얻는다 → 접속URL
    • 호스트명에 해당하는 IP 주소를 얻어온다 (DNS)
    • IP 주소의 80 포트에 연결한다
    • HTTP GET 요청을 보낸다
    • 서버에서 응답을 읽는다
    • 커넥션을 닫는다.

1.8 웹의 구성요소

1.8.1 프락시

  • 클라이언트와 서버 사이에 위치한 HTTP 중계자
  • 주로 보안을 위해 사용됨
    • ex) 교육청 차단 프로그램, 애플리케이션 바이러스 검출

1.8.2 캐시

  • 자주 찾는 것의 사본을 저장해둠.
  • (7장에서 자세히 다룸)

1.8.3 게이트웨이

  • 다른 서버들의 중계자로 동작하는 서버
  • HTTP 트래픽을 다른 프로토콜로 변환하기 위해 사용
  • (8장에서 자세히 다룸)

1.8.4 터널

  • 두 커넥션 사이의 데이터를 열어보지 않고 그대로 전달해주는 HTTP 애플리케이션

1.8.5 에이전트

  • 사용자를 위해 http 요청을 만들어주는 클라이언트 프로그램

0개의 댓글