HTTP란?

HyperText Transfer Protocol
: html과 같은 하이퍼미디어 문서를 전송하기 위한 Application Layer(7응용계층) 프로토콜 중 하나이다. 웹 브라우저와 웹 서버간의 통신을 위해 디자인되었다.

  • HTTP는 무상태 프로토콜 (Stateless protocol)이다.
    무상태란 클라이언트-서버 간의 통신(요청과 응답 과정)이 서로 독립적으로 처리되며, 각각 특정 상태(state)가 저장되거나 이전 요청이나 다음 요청이 기억되지 않는 것을 뜻한다.
    장점 :
    1) 통신간의 연결 상태 처리나 정보 저장을 관리할 필요가 없어서 서버 디자인이 간단하다.
    2) 서버는 각각의 요청에 그때그때 응답만 보내주면 된다.
    단점 :
    1) 요청 처리를 위한 데이터를 매번 보내야 한다.
    ex. 로그인 정보 - 로그인 상태에 대한 정보를 매번 보내야하는데, 이를 해결하기 위해 쿠키나 세션을 사용해 데이터를 처리한다. (이부분에 대해서는 추후에 더 알아볼 것)

HTTP 요청 메소드 (HTTP verbs) -CRUD

  • GET : 리소스 요청(Read)
  • POST : 리소스 생성(Create)
  • PUT : 리소스 업데이트,변경(Update)
  • DELETE : 리소스 삭제(Delete)
  • HEAD : 서버 헤더 정보 획득, GET과 유사하지만 Response Body를 반환하지 않는다.
  • OPTIONS : 서버 옵션을 확인하기 위한 요청. CORS에서 사용 (추후 CORS블로깅에서 다룸)

HTTP 메세지

클라이언트-서버 간에 데이터가 교환되는 방식.

  • 요청 (request) - 클라이언트
  • 응답 (response) - 서버

HTTP 메세지 형식

  • Start line :
    Requests: 요청 메소드 / URL,URI / HTTP 버전
    Responses : HTTP 버전 / 응답 정보(상태코드 Status code) / 응답 메세지

    HTTP Status Code
    2xx : 성공
    3xx : 새 url로 리다이렉트를 유도하는 경우
    4xx : 클라이언트 에러 (404 Not Found)
    5xx : 서버 에러

    프론트개발에서 이 상태코드를 보고 에러를 처리할 수 있다.

  • Headers : 헤더 정보 ex. Host, Server, Content-Type, Content-Length, Date

  • empty-line

  • Body :
    requests: POST, PUT의 경우에만 존재. 요청 관련 내용
    response: 응답 리소스 데이터

MIME 타입 - Content-Type

Content-Type : application/json
MIME 타입 - MDN
MIME 타입 관련해서는 추후 정리 예정




(이어서)

profile
- I make something! ✍🏽👩🏻‍💻🎬🎨💖🪑🔨🔜

0개의 댓글