HTTP 가 무엇일까?!

HELLO WORLD🙌·2020년 5월 13일
0

TIL

목록 보기
6/23

HTTP ?

하이퍼텍스트(HTML) 문서를 교환하기 위해 만들어진 protocol(통신 규약).
즉 웹상에서 네트워크로 서버끼리 통신을 할때 어떠한 형식으로 서로 통신을 하자고 규정해 놓은 "통신 형식" 혹은 "통신 구조" 라고 보면 된다.

HTTP의 특징

  • 기본적으로 요청/응답 (request/response) 구조
  • stateless 각각의 통신이 독립적이다
    그에 따른 문제점 : 예)로그인 했어도 로그인사실을 모른다.
    정보 저장 못한다 -> 쿠키(파일), 세션(브라우저)에 저장해서 요청을 보낸다

HTTP의 핵심 요소

http request의 구조

  • start line
    • http method - GET, POST
    • request target (상세주소 end point)
    • http version
  • header (key:value)
    • meta data
    • 자주사용되는 header정보 :
      • HOST (target의 host url)
      • User-Agent (유저의 정보)
      • Accept (응답 타입)
      • Connection (요청이 끝난후에 클라이언트와 서버가 계속해서 네트워크 컨넥션을 유지 할것인지 아니면 끊을것인지에 대해)
      • Content-Type (body의 타입)
      • Content-Length (body의 길이)
  • Body
    • 해당 request의 실제 메세지/내용

http response의 구조

  • status line : 요청에 대한 응답 상태
    • http 버전
    • status code
    • status text (응답 상태의 간략한 설명)
  • headers (key:value)
    • response에서만 사용되는 header 값 ex) User-Agent 대신 server
  • Body

HTTP Method

  • GET : 데이터를 서버로 부터 받아올때.
    데이터 수정이나 삭제하지 않을때. (body없는 경우가 많다)
  • POST : 데이터를 생성/수정/삭제 할때
  • DELETE : 삭제 요청
  • PUT : POST와 비슷

Status Code

  • 200 OK : 문제없이 실행되었을 때
  • 301 Moved Permanently : 해당 URI가 다른 주소로 바뀌었을때
  • 400 Bad Request : 요청이 잘못됐을 때
  • 401 Unauthorized : 로그인, 회원가입 등등이 필요할 때
  • 403 Forbidden : 유저가 요청에 대한 권한이 없을 때
    • 401과의 차이 ex) 로그인 했어도 무료유저는 접근 할 수 없을 때
  • 404 Not Found : 요청된 request target 이 존재하지 않을 때 (host가 잘못된 것은 아님)
  • 500 Internal Server Error : 서버에서 에러났을 때

0개의 댓글