WEB, boostcourse, 웹의 동작 (HTTP 프로토콜 이해)

들어가기 전에

  • 사람과 사람이 전화 통화를 하기 위해서 몇가지 규칙이 필요하다
  • 서로 알아들을 수 있는 말을 사용하고, 한쪽이 말을 할때는 다른쪽에서 들어야 한다
  • 전화 연결이 끊어지면 대화를 더 할 수 없다
  • 웹 브라우저 & 웹 서버 간에도 서로 통신 하기 위해서는 규약이 필요하다, 이 규약이 HTTP이다.

핵심 개념

  • 인터넷
  • HTTP 작동방식
  • URL
  • HTTPS

인터넷

  • 인터넷은 웹 브라우저www가 전부가 아니다
  • 물리적이 하나의 컴퓨터에는 여러개의 서버가 동작할 수 잇고 각각의 서버들은 포트라는 값으로 구분돼서 동작한다 ex) 웹 80, ftp 21 등
  • 네트워크들의 결합체, tcp/ip라는 약속으로 연결되어잇음

    http

  • 서버와 클라이언트가 인터넷상에서 데이터를 주고 받기 위한 프로토콜이다
  • 이미지, 동영상 , 오디오, 텍스트 문서등 종류를 가리지 않고 전송 할 수 있다

HTTP 작동방식

  • http는 서버/클라이언트 모델을 따른다
    클라이언트가 서버에게 요청을 보내면 서버가 클라이언트가 응답을 보낸다
  • 무상태(stateless) 프로토콜이라고도 이야기 한다
    클라이언트와 서버가 요청/응답이 끝나면 서로 연결을 끊어버린다.
  1. 장점
    • 불특정 다수에게 서비스할때 적합하다
    • 클라이언트와 서버가 연결된 형태가 아니기 때문에 클라이언트와 서버간의 최대 연결수 보다 훨씬 많은 요청과 응답을 처리할 수 있다
  2. 단점
    • 연결을 끊어버리기 때문에, 클라이언트의 이전상항을 할수 없다. (무상태)
    • 때문에 정보를 유지하기 위해서 Cookie와 같은 기술이 등장했다.

URL (Uniform Resource Locator)

  • 인터넷 상의 자원 위치
  • 특정 웹 서버의 특정파일에 접근하기 위한 경로 혹은 주소
  • 접근 프로토콜 + ip주소 or 도메인 + 문서의 경로 + 문서 이름

  • GET : 정보를 요청하기 위해서 사용한다. (SELECT) / 요청바디가 비어있다. 요청을 uri에 넣어서 헤더에서 보낸다
  • POST : 정보를 밀어넣기 위해서 사용한다. (INSERT)
  • PUT : 정보를 업데이트하기 위해서 사용한다. (UPDATE)
  • DELETE : 정보를 삭제하기 위해서 사용한다. (DELETE)
  • HEAD : (HTTP)헤더 정보만 요청한다. 해당 자원이 존재하는지 혹은 서버에 문제가 없는지를 확인하기 위해서 사용한다.
  • OPTIONS : 웹서버가 지원하는 메서드의 종류를 요청한다.
  • TRACE : 클라이언트의 요청을 그대로 반환한다. 예컨데 echo 서비스로 서버 상태를 확인하기 위한 목적으로 주로 사용한다.

HTTPS

  • Secure Hyper Text Transfer Protocol HTTP의 약점을 보완하여 나온 것이 HTTPS. 서버와 클라이언트 사이모든 소통 내용을 암호화하기 때문에 보안적이 부분의 장점이 있으나 음란물 및 불법 도박 사이트도 같은 보호를 받고 있다는 문제점이 있음.

Reference