[세미나] HTTP

매빈·2023년 4월 22일
0

EFUB 세미나

목록 보기
2/6
post-thumbnail

HTTP


  • Hyper Text Transfer Protocol
  • 프로토콜: 서버와 클라이언트가 Request와 Response를 주고 받기 위해 사용되는 일종의 규약, 메세지
  • 클라이언트-서버 프로토콜: 서버와 클라이언트가 Request와 Response를 주고 받기 위해 이용

서버-클라이언트 구조


  • 서버: 서비스를 제공하는 컴퓨터. ➡️ 백엔드와 연관
  • 클라이언트: 서비스를 요청하고 받는 컴퓨터. ➡️ 프론트엔드와 연관
  • 요청 및 응답: 클라이언트가 request를 보내면 서버에서 response 메시지 반환

HTTP의 특성


Stateful vs Stateless

  • Stateful
    • 세션의 상태에 기반해 클라이언트에 응답을 보내므로, 세션 상태를 포함한 클라이언트와의 세션 정보를 서버에 저장함.
    • 따라서, 세션 상태에 의존적임
    • TCP (3-way handshaking)
  • Stateless
    • 클라이언트의 요청에 대한 응답만을 보내므로, 세션 정보를 서버에 저장하지 않음
    • 따라서, 세션 상태와 독립적임
    • UDP, HTTP
    • 특성
      - 서버 유지보수에 용이함
      ➡️ 세션 상태를 보관하지 않으므로 어떤 서버가 응답하더라도 상관 없음. 따라서 클라이언트의 요청이 대폭 증가하더라도 서버를 증설할 수 있기 때문.

      서버가 상태를 알아야 할 때는, 브라우저 쿠키/서버 세션/토큰 등을 사용하여 상태를 유지해야 함.

Connectionless

  • 클라이언트와 서버가 한 번 연결을 맺은 후, 클라이언트 요청에 대해 서버가 응답을 마치면 맺었던 연결을 바로 끊어버림.
  • 한 유저가 요청을 계속 보내는 것이 아니기 때문에, 계속 연결을 유지하는 것은 자원 낭비
  • 클라이언트를 기억하고 있지 않기 때문에 동일 클라이언트와 계속 통신할 때도 매번 새로운 연결 시도를 해야 함 ➡️ 오버헤드 발생
  • KeepAlive, 쿠키와 세션 활용(HTML4), 웹 소켓 활용(HTML5)

HTTP vs. HTTPS


보안 측면

  • http: 서버 ➡️ 클라이언트로 전송되는 데이터가 암호화되지 않음.
  • https: SSL 인증서를 사용해 데이터를 암호화하므로 쉽게 해독 불가.

SEO 측면

  • 검색 엔진 최적화를 위해서라도 https를 최적화해야 함. 상위 노출 기준 중 하나가 보안 요소이기 때문.

✚ SEO?
Search engine optimization

✚ SSL?
Secure Sockets Layer, 암호화 기반 인터넷 보안 프로토콜

HTTP Method


HTTP의 주요 메소드

  1. GET: 리소스 조회(READ)
  2. POST: 요청된 자원을 생성(CREATE)
  3. PUT: 요청된 자원을 수정(UPDATE) ➡️ 자원 전체 수정
  4. PATCH: 요청된 자원을 수정(UPDATE) ➡️ 자원 일부 수정
  5. DELETE: 요청된 자원을 삭제(DELETE)

HTTP Status Code


  • 서버로 보낸 요청 상태를 나타내는 코드
  • 서버로 보내진 작업의 수행 상태를 알려줄 수 있도록 표준에 맞춘 일종의 약속
  • http 요청이 잘 이루어졌는지, 왜 에러가 발생했는지 파악 가능 ➡️ 에러 종류에 대해 커뮤니케이션 하기 편리
  • 형태
    • 1XX : 요청이 수신되어 처리 중, 프로세스를 계속함
    • 2XX : 서버가 요청을 성공적으로 처리함
    • 3XX : 요청을 완료하려면 추가 행동이 필요함
    • 4XX : 클라이언트 오류, 잘못된 문법 등으로 서버가 요청을 수행 할 수 없음
    • 5XX : 서버가 유효한 요청을 처리하는 데 실패
      ➡️ 4와 5는 정상 상태가 아닌 경우에 해당

0개의 댓글