Back-End/HTTP

[HTTP 완벽 가이드][웹의 기초] 1. HTTP 웹의 기초

얄루몬 2022. 4. 8. 18:52

💻본 포스팅은 'HTTP 완벽 가이드 : 웹은 어떻게 동작하는가' 책을 보고 작성되었습니다.


[1.1 HTTP: 인터넷 멀티 미디어 배달부]

  • HTTP는 신뢰성 있는 데이터 전용 프로토콜 사용으로 데이터가 손상되거나 꼬이는 문제를 걱정하지 않아도 된다.

 

[1.2 웹 클라이언트와 서버]

  • 웹 콘텐츠는 웹 서버에 존재한다 웹서버는 HTTP로 소통하고 이는 HTTP 서버라고 한다.

https://www.google.com/url?sa=i&url=https%3A%2F%2Fwogh8732.tistory.com%2F20&psig=AOvVaw39Hq9mBQKCT65QDjOl5nr7&ust=1649496139845000&source=images&cd=vfe&ved=0CAoQjRxqFwoTCIDJ9JCShPcCFQAAAAAdAAAAABAD

  • 웹 클라이언트는 대표적으로 브라우저를 의미하고 익스플로러, 구글 크롬 같은 경우가 대표적인 웹 브라우저이다.

 

[1.3 리소스]

  • 웹 서버
    • 웹 리소스를 관리한다.
  • 웹 리소스
    • 웹 콘텐츠의 원천
    • 정적 파일(jpg, img, html 파일 등이 이에 해당..)
    • 동적 콘텐츠 리소스도 가능하다(프로그램과 같은 것들이 이에 해당..)
  • 결론적으로 웹 리소스는 어떤 종류가 와도 된다.

[미디어 타입]

  • 웹 서버는 모든 HTTP 객체 데이터에 MIME타입을 붙인다.(MIME: 데이터 포맷 라벨)

MIME 타입

[URI]

  • 웹 소스는 각자 이름이 존재한다. 이를 서버 리소스 이름 통합 자원 식별자 URI라고 부른다.

[URL]

  • 특정 서버의 리소스에 대한 구체적 위치를 서술한다.
  • 리소스가 어디에 있고 어떻게 접근이 가능한지를 알려준다.

[URN]

  • 라소스 위치에 영향을 주지 않는다.
  • 유일 무이한 이름의 역할을 한다.

 

[1.4 트랜잭션]

  • HTTP 트랜잭션의 구성
    • HTTP 트랜잭션 요청 명령
    • HTTP 트랜잭션 응답 결과

[메서드(method)]

  • 모든 HTTP 요청 메시지는 1개의 메서드를 갖는다.
  • 메서드로 서버에게 어떤 동작을 취해주어야 하는지 알려준다.
    • 웹페이지 가져오기, 게이트웨이 프로그램 실행하기, 파일 삭제하기 등
메소드 역할
GET 리소스를 조회한다. (주요 메소드)
POST 요청 데이터 처리, 주로 데이터 등록에 사용 (주요 메소드)
DELETE 리소스를 삭제한다. (주요 메소드)
PUT 리소스를 대체하고 이때 리소스가 없다면 새로 할당해준다. (주요 메소드)
PATCH 리소스를 일부만 변경한다. (주요 메소드)
HEAD 지정 리소스 응답에서 HTTP 헤더만을 보내주는 역할을 한다. (기타 메소드)

[상태코드]

  • 1xx (Informational): 요청이 수신되어 처리중
  • 2xx (Successful): 요청 정상 처리
  • 3xx (Redirection): 요청을 완료하려면 추가 행동이 필요
  • 4xx (Client Error): 클라이언트 오류, 잘못된 문법등으로 서버가 요청을 수행할 수 없음
  • 5xx (Server Error): 서버 오류, 서버가 정상 요청을 처리하지 못함

[웹 페이지는 여러 객체로 이루어질 수 있다.]

웹 페이지의 리소스는 대게 하나의 리소스가 아닌 여러 시소스의 모음이다.

 

[1.5 메시지]

  • HTTP 메시지
    • 요청 메시지
    • 응답 메시지

[1.6 TCP 커넥션]

전송 제어 프로토콜(Transmission Control Protocol, TCP, 문화어: 전송조종규약)은 인터넷 프로토콜 스위트(IP)의 핵심 프로토콜 중 하나로, IP와 함께 TCP/IP라는 명칭으로도 널리 불린다.

📌출처: https://ko.wikipedia.org/wiki/%EC%A0%84%EC%86%A1_%EC%A0%9C%EC%96%B4_%ED%94%84%EB%A1%9C%ED%86%A0%EC%BD%9C

 

전송 제어 프로토콜 - 위키백과, 우리 모두의 백과사전

전송 제어 프로토콜(Transmission Control Protocol, TCP, 문화어: 전송조종규약)은 인터넷 프로토콜 스위트(IP)의 핵심 프로토콜 중 하나로, IP와 함께 TCP/IP라는 명칭으로도 널리 불린다. TCP는 근거리 통신

ko.wikipedia.org

 

  • HTTP는 애플리케이션 계층 프로토콜로 통신 핵심 세부사항에는 신경을 쓰지 않는다.
  • 그렇다면 이 통신 세부사항을 신경쓰는 것은 무엇일까?
    • TCP/IP가 이를 처리한다.
  • TCP의 제공
    • 오류 없는 데이터를 전송 보장한다.
    • 순서에 맞는 전달을 보장한다.(데이터가 중간에 뒤죽박죽 순서 변동이 없도록 한다.)
    • 조각나지 않는 데이터를 스트림 해준다. (언제 어디서든 어떤 크기로든 보낼 수 있다는 의미다.) 

[TCP/IP]

[접속, IP 주소 그리고 포트 번호]

  • HTTP가 메시지 전송 전에 IP 주소와 포트번호를 사용해서 클라이언트와 서버 사이에 TCP/IP 커넥션을 맺어야 한다.

[1.7 프로토콜 버전]

https://ko.wikipedia.org/wiki/HTTP

 

HTTP - 위키백과, 우리 모두의 백과사전

HTTP(HyperText Transfer Protocol, 문화어: 초본문전송규약, 하이퍼본문전송규약)는 W3 상에서 정보를 주고받을 수 있는 프로토콜이다. 주로 HTML 문서를 주고받는 데에 쓰인다. 주로 TCP를 사용하고 HTTP/3

ko.wikipedia.org

 

[1.8 웹의 구성 요소]

  • 프락시
    • 클라이언트 서버 사이에 위치한 HTTP 중개자
  • 캐시
    • 많이 찾는 웹페이지를 클라이언트 가까이에 두고 필요할 때 빠르게 사용할 수 있게 하는 HTTP 창고
  • 게이트웨이
    • 다른 애플리케이션과 연결된 특별한 웹 서버
  • 터널
    • 단순 HTTP 통신으로 전달하기만 하는 특별한 종류의 프락시
  • 에이전트
    •  자동화된 HTTP 요청을 만드는 준지능적 웹 클라이언트