HTTP 웹 (2)

유진·2023년 2월 23일
0

모각소 5주차

오늘 모각소 시간에는 HTTP 웹 공부를 했고, 단국대 FAC 대자보팀과 협업하기 위한 첫 번째 회의를 진행했다.

웹 서버 vs 웹 어플리케이션

분리하는 이유

→ 자원 이용의 효율성 및 장애 극복, 배포 및 유지보수의 편의성

웹 서버

  • 정적인 사이트
  • 이미지, 파일, CSS, HTML
  • nginx, apache 등
  • HTTP 프로토콜을 기반으로 하여 클라이언트의 요청을 서비스하는 기능
    • 정적인 컨텐츠 → WAS 거치지 않고 바로 제공
    • 동적인 컨텐츠 → Client의 Request를 WAS로 전송, WAS에서 반환한 결과를 Client로 Response 보냄

웹 어플리케이션

  • WAS (Web Application Serer)
    • Web Server + Web Container
    • Web Server의 기능을 구조적으로 분리하여 처리하고자하는 목적
    • 분산 트랜잭션, 보안, 메시징, 쓰레드 처리
      • 기능적 분리 → 서버 부하 방지
      • 물리적 분리 → 보안 강화
    • 주로 DB 서버와 같이 수행됨
  • 동적인 사이트
  • HTTP를 통해 컴퓨터나 장치에 애플리케이션을 수행해주는 미들웨어 (소프트웨어 엔진)
  • 로그인, DB 접속 등
  • 프로세스 실행 + 서버 자원 최적화 / 프로세스 수 or 메모리 조절
  • 여러 개의 트랜잭션 (논리적인 작업 단위) 관리 기능
  • phusion passenger, apache tomcat, JBoss


HTTP vs HTTPS

HTTP

  • Hyper Text Transfer Protocol
  • 서버/클라이언트 모델에 따라 데이터를 주고 받기 위한 프로토콜
  • 인터넷에서 하이퍼 텍스트를 교환하기 위한 통신 규약
  • 80번 포트 사용
    • HTTP 서버가 80번 포트에서 요청을 기다림
    • 클라이언트는 80번 포트로 요청을 보냄

HTTPS

  • Hyper Text Transfer Protocol Secure
  • HTTP + 데이터 암호화 프로토콜
  • 443번 포트 사용
  • 연결 과정
    1. Client가 Server로 최초 연결 시도
    2. Server는 공개키(인증서)를 Client로 넘겨줌
    3. Client는 공개키의 유효성을 검사 → 세션키 발급
    4. Client는 세션키를 보관, Server의 공개키로 세션키를 암호화 → Server로 전송
    5. Server는 개인키로 암호화된 세션키를 복호화하여 세션키를 얻음
    6. Client와 Server는 동일한 세션키 공유 → 데이터 전달할 때 세션키로 암호화/복호화 진행

HTTP 상태 코드

  • 200
    • 요청이 성공적으로 이루어짐
    • 요청에 따른 응답이 반환됨
  • 404
    • 서버는 요청받은 리소스를 찾을 수 없음
    • 브라우저에서 : 알려지지 않는 URL
    • 서버는 인증받지 않은 클라이언트로부터 리소스를 숨기기 위해서 403 대신 404를 보내기도 함
  • 503
    • 서버가 요청을 처리할 준비가 되지 않음
    • 유지 보수를 위해 작동이 중단되거나 과부하가 걸린 서버
  • 1xx (정보) : 요청 받음, 프로세스가 계속 진행함
  • 2xx (성공) : 요청을 성공적으로 받고 인식했고 수용함
  • 3xx (리다이렉션) : 요청 완료를 위해 추가 작업 조치가 필요함
  • 4xx (클라이언트 오류) : 요청의 문법이 잘못되었거나 요청을 처리할 수 없음
  • 5xx (서버 오류) : 서버가 유효한 요청에 대해 충족 실패함


Restful API

  • Representational State Transfer
  • 리소스의 이름을 구분하여 리소스의 상태를 주고받음
  • HTTP URL을 통해 리소스 명시
  • HTTP METHOD (GET, POST, PUT, DELETE)를 사용하여 CRUD Operation 적용

3가지 요소

  • 리소스 : HTTP URL
  • 리소스에 대한 행위 : HTTP METHOD
  • 리소스에 대한 행위의 내용 : HTTP Message Payload

특징

  • Server-Client 구조
    • Server : 리소스 보유
    • Client : 리소스 요청
  • Self-Descriptiveness 요청 메시지만 보고도 이해할 수 있음

장점

  • HTTP 프로토콜 을 따르는 모든 곳에서 사용 가능
  • HTTP 프로토콜 인프라를 사용 → REST API 사용을 위한 별도의 인프라 구축 X
  • REST API 메시지가 의도하는 바를 명확하게 나타내므로 의도를 정확하게 파악 가능 → 여러가지 서비스 디자인에서 발생할 수 있는 문제를 최소화

단점

  • 사용 가능한 Method 4가지 → 제한적인 형태
  • 구형 브라우저에서 호환되지 않음 → 지원되지 않는 동작 있음

0개의 댓글

관련 채용 정보