HTTP

이유진·2021년 12월 11일
0

HTTP란?

: HyperText와 Transfer 와 Protocol로 구성
: 네트워크 구간에서 HTML문서를 전송하기 위한 통신규약

출처: https://coding-start.tistory.com/208 [코딩스타트]

1) HTTP 구성

  • HyperText : 링크로 연결되어 있는 것

  • Transfer : 전달, 전송 / HTML의 문서 & 파일 전송하기

  • Protocol : 약속 / HTML 파일을 어떻게 전송하기 위한 약속




2) HTTP 동작원리 : 요청이 있으면 응답이 있음

HTTP가 동작하기 위한 필수 조건 : 클라이언트서버

  • 클라이언트 : 사용자(사람만을 뜻하는게 아닌, 사용하는 핸드폰, 인터넷 등 요청(request)을 보내는 모든 것)
    ex) 데이터, 메세지 등을 보냄

  • 서버 : 요청을 받아, 요청에 대한 응답(response)을 해주는 모든 것 )
    ex) 데이터 조회




3) HTTP 특징

  • Reaquest(요청)와 Response(응답)
    요청을 하면, 응답이 돌아와야 함(가장 큰 특징)
    HTTP 요청과 응답은 그냥 메세지일뿐!!

  • Stateless = State(상태) + Less(없음)
    매번 요청을 할때, 과거의 HTTP 통신에 대한 내용을 기억하지 못하는 상태
    매 통신마다 필요한 정보(ex. 로그인 정보-토큰)를 담아서 요청을 보내야 함!!




4) HTTP Request 메세지 구조(3개의 구조로 되어 있음)

(1) Start Line / Status Line : 요청과 응답의 상태(HTTP 메소드, URL(타겟), HTTP 버전)

  • 요청(request)의 경우 : Start Line - 상태를 같이 보내줌
    ex) POST/users/signup HTTP/1.1
    메소드 / URL / HTTP 버전
    해석 : HTTP 메소드 중 POST 메소드signup 이라는 요청 타겟HTTP 1.1 버전으로 요청을 보내겠다!

  • 응답(response)의 경우 : Status Line - 응답의 결과 or 상태를 같이 보내줌
    ex) HTTP/1.1 200 OK
    HTTP 버전/ 응답 상태 코드 / 응답 상태 설명

(2) Headers : 요청과 응답에 대한 추가 정보(메타 데이터)를 딕셔너리(dictionary)형태로 담아주는곳
: '메세지의 상태, 누가 & 어디서 & 어떻게 보냈는지'의 메타 데이터

  • header에 담기는 정보👇:

    Headers: {
    Host: 요청을 보내는 목표(타겟)의 주소. 즉, 요청을 보내는 웹사이트의 기본 주소가 된다
    (ex. www.apple.co.kr)
    User-Agent: 요청을 보내는 클라이언트의 대한 정보 (ex. chrome, firefox, safari, explorer)
    Content-Type: 해당 요청이 보내는 메세지 body의 타입 (ex. application/json)
    Content-Length: body 내용의 길이
    Authorization: 회원의 인증/인가를 처리하기 위해 로그인 토큰Authroization 에 담는다
    }

(3) Body : 요청과 응답의 실제 담아주는 데이터 정보




5) HTTP 메소드 종류

(1) GET

  • 데이터를 가져올 때 사용 (출처)
  • ex) 영화정보확인, 주문내역확인
  • body에 담을 정보가 없음

(2) POST

  • 서버로 데이터를 전송
  • ex) 데이터 생성 및 수정
  • body에 담을 정보가 있음

***GET과 POST의 큰 차이점 : Body에 담을 데이터 여부 차이

(3) DELETE

  • 지정한 리소스를 삭제할 때 사용



6) HTTP Response 상태코드

status 코드 번호status 상태설명ex
200:OK요청에 대해 성공 할 때
201:Created생성 요청에 대해 생성이 완료 때
400:Bad Request요청(request)이 잘못 되었을 때 (즉,없는 것을 요청한 경우)
401:Unauthorized인증되지 않은 누군가인 경우 (즉, 인증이 필요한 경우)로그인 하지 않은 유저
403:Forbidden허가 되지 않은 사람이 요청했을 경우 (즉, 유저에 대한 요청(접근)권한이 없는 경우)어드민페이지 유저 접근
404:Not Found잘못된 URL을 보낸 경우 (즉, 존재하지 않는 URL인 경우)
405:Method Not Allowed메소드를 잘못 보냈을 때
500:Internal Server Error서버 에러
profile
차근차근 배워나가는 주니어 개발자

0개의 댓글