HTTP

홍준섭·2022년 8월 22일
0

네트워크

목록 보기
10/20

개요

HTTP는 HTML문서와 같은 리소스를 가져오기 위한 클라이언트-서버 프로토콜입니다.

HTTP 기반 시스템의 구성 요소

client <-> proxy <-> proxy <-> server

client

사용자를 대신하여 작동하는 모든 도구

web server

클라이언트가 요청한 대로 문서를 제공하는 서버.

proxy

웹 브라우저와 서버 사이에서 수많은 컴퓨터와 기계가 HTTP 메시지를 중계
캐싱, 필터링, 로드밸런싱, 인증, 로깅등의 기능을 수행 가능.

HTTP의 기본 측면

  • HTTP는 간단하다
  • HTTP는 확장 가능하다.
  • HTTP는 stateless이지만 sessionless는 아니다.

HTTP로 제어할 수 있는 것

  • 캐싱문서가 캐시되는 방식을 HTTP로 제어 할 수 있다.
  • 동일한 출처의 페이지만 웹 페이지의 모든 정보를 액세스 할 수 있게한다.
  • 인증 페이지는 특정 사용자만 액세스 할 수 있도록 보호한다.
  • 프록시 및 터널링 서버 또는 클라이언트는 종종 인트라넷에 위치하며 다른 컴퓨터에서 실제 IP 주소를 숨긴다. 그런 다음 HTTP요청은 프록시를 통해 이 네트워크 장벽을 넘는다.
  • HTTP 쿠키를 사용하는 세션을 사용하면 요청을 서버 상태와 연결할 수 있다.

HTTP 메시지

구조

  • 시작줄
  • 헤더
  • 공백라인
  • 메시지 바디

시작줄

HTTP 요청은 서버가 특정 동작을 취하게끔 만들기 위해 클라이언트에서 전송하는 메시지입니다.

  • 첫번째로 오는것은 HTTP 메서드는 (GET: 조회, PUT: 대체, POST:등록, DELETE:삭제) 혹은 (HEAD,OPTIONS)를 사용해 서버가 수행해야 할 동작을 나타냅니다.
  • 두번째로 오는 요청 타겟은 주로 URL, 또는 프로토콜, 포트, 도메인의 절대 경로로 나타낼 수 있으며 이들은 요청 컨텍스트에 의해 특정지어 집니다. 요청 타겟 포캣은 HTTP 메소드에 따라 달라진다.
  • 마지막으로 HTTP 버전이 들어간다.

헤더

요청에 들어가는 HTTP 헤더는 기본 구조를 따른다. 대소문자 구분없는 문자열 다음에 콜론이 붙으며, 그 뒤에 오는 값은 헤더에 따라 달라진다. 헤더는 값까지 포함해 한 줄로 구성되지만 꽤 길어질 수 있다.

메시지 바디

응답의 마지막 부분에 들어간다.

상태코드

  • 1xx: 처리중
  • 2xx: 정상 처리
  • 3xx: 요청 완료를 위해 추가 행동 필요
  • 4xx: client 오류
  • 5xx: server 오류

HTTP/1.1 동작 과정

url을 통해 검색 -> 브라우저가 dns서버에 접속하여 ip address를 가져 옴 -> tcp가 소켓을 열어서 연결 -> 그 위에서 http request가 전달 -> response 받음 -> 더 이상 통신을 안 하는 경우 tcp 연결 끊어짐

HTTP는 어떻게 영상을 스트리밍 하는가

스트리밍은 파일을 통째로 가져와서 그것을 저장한 후 플레이하는 것이 아니라 영상의 앞부분에 일정 시간 동안 영상을 플레이하지 못하고 그 시간 동안에 영상을 미리 가져온다 그래서 가져온 영상을 보여주면서 그 영상 뒷부분에 있는 것도 끊임없이 가져오는 작업을 한다. 또한 네트워크 속도에 따라 빠르면 해상도가 높은 것을 가져오고 느리면 해상도가 낮은 것을 http통신을 이용해 가져온다.

profile
개발 공부중입니다

0개의 댓글