HTTP란?

김두현·2022년 10월 28일
2

Backend Curriculum

목록 보기
3/16
post-thumbnail

Goal

  • HTTP의 개념을 이해한다.
  • HTTP의 특징을 파악한다.
    • Server - Client 구조
    • 무상태(Stateless)
    • 비연결성(Connectionless)
    • Request - Response

HTTP(HyperText Transfer Protocol)

  • HTTP : 다양한 형태의 정보를 전송하는 프로토콜
    • 인터넷 상에서 서로 데이터를 주고받게끔 규정된 약속
      • 웹 페이지를 방문하면, 컴퓨터는 http를 통해 다른 컴퓨터에서 웹 페이지를 다운로드 받는다.

HTTP 특징

Server Client 구조


  • Server : 클라이언트에게 요청을 받고 응답(Response)하는 장치
  • Client : 서버에게 요청(Request)하고 응답을 대기하는 사용자

  • 클라이언트가 브라우저를 통해 어떠한 서비스를 요청하면, 서버는 요청사항에 맞는 결과를 찾아 사용자에게 응답하는 형태로 동작한다
    • 브라우저 : 웹 서버와 통신하여 원하는 정보를 찾고, 사용자의 검색을 돕는 프로그램

무상태 (Stateless)


  • 무상태 : 서버가 클라이언트의 상태를 보존하지 않는다.
    • 장점 : 클라이언트가 매번 응답 서버를 바꿀 수 있기 때문에, 서버 증설이 무한히 가능하다.
    • 단점 : 서버가 클라이언트를 식별할 수 없기 때문에, 클라이언트가 전송해야할 데이터가 많아진다.

  • 예상 질문 : "그런데 웹 페이지 들어가니까 제 아이디, 심지어 비밀번호까지 기억하던데요??"
    • 나중에 살펴볼 쿠키, 세션 등이 이러한 작업을 가능하게 했다.

비 연결성(Connectionless)


  • 비 연결성 : 서버는 클라이언트에게 응답을 하고나면, 연결을 바로 끊어버린다.
    • 장점 : 평소 연결을 유지하기 않기 때문에, 서버 자원을 최소화한다.
    • 단점 : 클라이언트가 요청을 할때마다 TCP/IP 연결을 새로 해야해서 시간이 더 소비된다.

Request & Response


  • 요청 메소드 : GET , POST , PUT , DELETE 등 다양한 요청을 서버에게 전달
  • 응답 코드
    • 1XX : 작업이 진행중
    • 2XX : 성공적으로 처리 완료
    • 3XX : 처리 위해 추가 작업이 필요
    • 4XX : 클라이언트 측에서 에러 발생 ex) 잘못된 주소 입력
    • 5XX : 서버 측에서 에러 발생 ex ) 22년 10월 카카오 사태

✨오늘 내용은 여기까지✨


커리큘럼 남은 일정

인터넷

  • 인터넷 작동 원리
  • HTTP란?
  • 브라우저 동작 원리
  • DNS 작동 원리
  • 도메인 네임이란?
  • 호스팅이란?

    기본적인 프론트엔드 지식
  • HTML
  • CSS
  • JavaScript

    OS 및 일반적인 지식
  • 터미널 사용방법
  • OS 작동 방식
  • 프로세스 관리
  • 스레드와 동시성
  • 기본적인 터미널 명령어
  • 메모리 관리
  • 프로세스간 통신 (IPC)
  • 입출력 관리
  • POSIX 기초
  • 기본적인 네트워크 개념

    버전 관리
  • Git 기본 사용법

    DataBase
  • PostgreSQL (변경 가능성 있음)
  • MongoDB

    DataBase 상세 정보
  • ORM
  • ACID
  • Transaction
  • N + 1 Problem
  • DataBase 정규화
  • Index와 작동 방식

    API
  • 인증
  • REST
  • JSON APIs

    캐싱
  • CDN
  • Server side
  • Client side

    웹 보안 지식
  • MD5, SHA family, scyrpt, bcrypt
  • HTTPS, CORS, SSL/TL, 보안 정책

    Testing
  • 통합 테스트
  • 단위 테스트
  • 기능 테스트

  • CI/CD

    개발과 설계 원칙
  • SOLID
  • KISS
  • YAGNI
  • DRY

    아키텍처 패턴
  • 모놀로틱 앱
  • 마이크로서비스
  • SQA
  • Serverless

    검색 엔진
  • ElasticSearch

    메세지 브로커
  • RabbitMQ, Kafka

    컨테이너화 vs 가상화
  • Docker

    GraphQL
  • Apollo

  • 웹 소켓

  • 웹 서버

    확장성
  • 측정, 모니터링, 원격측정
  • 마이그레이션 전략
  • 수평적 확장 vs 수직적 확장
  • 관찰 가능성을 고려한 확장

참고 자료

https://es1015.tistory.com/494#3
https://usefultoknow.tistory.com/entry/HTTP%EB%9E%80


💕오류 지적 및 피드백은 언제든 환영입니다. 복제시 출처 남겨주세요!💕
💕좋아요와 댓글은 큰 힘이 됩니다.💕
profile
I AM WHO I AM

0개의 댓글