Hyemi Lee

Hyemi Lee

주니어 개발자의 삽질과 기록

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

Share on

Twitter Facebook LinkedIn

You may also enjoy

Redis Stream

2021年04月28日

Stream Stream은 로그 데이터를 처리하게위해 5.0에서 새로 도입된 데이터 타입입니다. 대량의 데이터가 연속적으로 발생할때 처리하기 위해 등장했습니다. 기존 데이터를 수정하지 않고 오직 추가로 발생합니다. 이런 종류의 데이터를 stream or log데이터...

Study, Object, chapter2&3 presentation

2021年04月20日

chapter03. 역할, 책임, 협력 객체지향 설계란, 올바른 객체에게 올바른 책임을 할당하면서 낮은 결합도와 높은 응집도를 가진 구조를 창조하는 활동이다.

Spring, chatting 프로그램 만들기, Reactive란?

2020年06月16日

Reactive 막힘없이 흘러다니는 data(event)를 통해 사용자에게 자연스러운 응답을 주고 규모 탄력적으로 리소스를 사용하며 실패에 있어서 유연하게 대처한다 모든 지점에서 블럭 되지 않게 하자 oop와 같은 패러다임 모든 것을 비동기적인 data의 strea...