[Web] 모든 개발자를 위한 HTTP 웹 기본 지식 - 강의 정리 - 2

JJAM·2022년 9월 7일
0
post-thumbnail

📖 HTTP 기본

📒 모든 것이 HTTP

HyperText Transfer Protocol

거의 모든 형태의 데이터 전송이 가능하다.

📒 클라이언트 서버 구조

클라이언트
서버에 요청을 보내고, 응답 대기

서버
요청에 대한 결과 만들어서 클라이언트에게 응답

📒 상태 유지(Stateful), 무상태(Stateless)

상태유지(Stateful)

  • 서버가 클라이언트의 상태 보존
  • 항상 같은 서버가 유지되어야 함

무상태(Stateless)

  • 서버가 클라이언트의 상태 보존X
  • 응답 서버를 쉽게 바꿀수 있음(아무 서버나 호출해도 됨)
  • 무상태 설계 선호

📒 비 연결성(connectionless)

서버 연결 유지 -> 서버 자원 소모

비 연결성

  • HTTP는 기본이 연결을 유지하지 않음
  • 서버 자원을 효율적으로 사용

TCP/IP 연결을 새로 맺어야 하는 문제점을 HTTP 지속 연결(Persistent Connections) 로 해결한다.

📒 HTTP 메시지

🖋️ HTTP 요청 메시지

start-line 시작라인

  • HTTP 메서드 - 서버가 수행해야 할 동작 지정
    ex) GET, POST, PUT, DELETE ...
  • 요청 대상
    ex) /search?q=hello&hl=ko
  • HTTP Version
    ex) HTTP/1.1

header 헤더 - HTTP 전송에 필요한 모든 부가정보

  • field-name: field-value
    ex) Host: www.goole.com

message body - 실제 전송할 데이터

🖋️ HTTP 응답 메시지

start-line 시작라인

  • HTTP 버전
    ex) HTTP/1.1
  • HTTP 상태 코드 - 요청 성공, 실패 나타냄
    ex) 200(성공), 400(클라이언트 요청 오류), 500(서버 내부 오류)
  • 이유 문구
    ex) OK

header 헤더 - HTTP 전송에 필요한 모든 부가정보

  • field-name: field-value
    ex) Content-Type: text/html;charset=UTF-8

message body - 실제 전송할 데이터


📖 HTTP 메서드

📒 HTTP API를 만들어보자

회원 정보 관리 API

  • 회원 목록 조회
  • 회원 조회
  • 회원 등록
  • 회원 수정
  • 회원 삭제

리소스(회원)와 해당 리소스를 대상으로 하는 행위(조회, 등록, 삭제, 변경) 분리

📒 HTTP 메서드 - GET, POST

🖋️ GET - 리소스 조회

  • query를 통해 서버에 데이터 전달

🖋️ POST - 요청 데이터 처리

  • 메시지 바디를 통해 서버에 요청 데이터 전달 -> 서버가 요청 데이터 처리
  • ex) 회원 가입, 주문, 게시판 글 작성, 댓글 작성, 문서 끝에 내용 추가

📒 HTTP 메서드 - PUT, PATCH, DELETE

🖋️ PUT - 리소스 대체

  • 리소스의 내용을 덮어버림, 해당 리소스가 없으면 생성
  • 클라이언트가 리소스의 위치 알아야 됨

리소스가 있는 경우

리소스가 없는 경우

🖋️ PATCH - 리소스 부분 변경

🖋️ DELETE - 리소스 삭제

📒 HTTP 메서드의 속성

안전(Safe Methods) - 호출해도 리소스를 변경하지 않음

멱등(Idempotent Methods) - 한 번 호출하든 두 번 호출하든 100번 호출하든 결과가 똑같음

캐시가능(Cacheable Methods) - 응답 결과 리소스를 캐시해서 사용


지금까지 김영한 - 모든 개발자를 위한 HTTP 웹 기본 지식 (유료강의) 강의를 참고하여 HTTP 기본, HTTP 메서드 에 대해 공부하였다.

profile
☘️

0개의 댓글