http

Jetom·2021년 9월 9일
0

etc(언어 외의 기술)

목록 보기
3/11
post-thumbnail

http란 넘 어려운것... 너무 알쏭달쏭하다... 😭


http란? 🤷‍♀️

http란 HyperText Transfer Protocol의 약자이며, 각각 다음의 내용으로 해석 할 수 있다. HyperText는 문서와 문서가 링크로 연결 되어있음을 뜻하며, Transfer은 html로 만든 웹페이지 파일을 보낸다는 뜻이다. 마지막 Protocol은 컴퓨터끼리 어떤식으로 파일을 주고 받을 지에 대한 소통방식을 뜻한다.

그래서 각각의 의미를 합치면 컴퓨터끼리 html로 만든 웹 페이지 문서를 어떻게 주고 받을 지에 대한 약속 이라고 생각하면 된다.

Request(요청) & Response(응답)

http는 사용자가 브라우저를 통해 어떤 동작을 하면 서버는 결괏값을 보내주는데, 이때 사용자는 Request(=요청)을 하고, 서버는 그 리퀘스트를 Response(=응답)한다고 한다. 예를 들면 페이스북의 좋아요 기능을 사용자가 클릭한다고 요청을 보내면 그것의 결괏값으로 하트가 눌리는것으로 응답을 한다고 생각하면 된다.(이때 서버는 요청에 대한 결괏값을 실패했어도 실패했다는 결괏값을 보낸다.)

http 개별 통신은 모두 독립적이며 과거의 http 통신의 결과를 보존하지 않는다. 이것을 stateless라 부르며, 독립적이기 때문에 모든 테이터를 매번 보내야하지만 토큰을 사용하여 이 문제를 해결 할 수 있다.(토큰 값은 백에서 처리하지만 토큰을 활용하는것은 프론트에서한다.)

Request의 구조

request의 구조는 start line, headers, body로 나누어져 있으며 각각의 역할은 다음과 같다.

📖 start line (요청의 첫번째 줄)
HTTP method - 요청이 의도한 액션을 정의한다.

request target
요청이 전성되는 목표 url

HTTP version
HTTP의 버전이다

💡 정확하게 보고싶다면 프록시 도구를 사용해서 패킷을 확인하면 된다.

📖 Headers (요청의 메타데이터를 담고 있는 부분)
{key : value}의 형태

📖 Body (요청의 실제 내용)
(body는 메서드에 따라 존재하지 않을 수도 있다.)

👇 userid와 pwd가 body라고 보면된다.

POST/login HTTP/1.1을 풀어서 나타내면 login 페이지를 http 1.1버전으로 post 요청을 보낸다 라고 말 할 수있다.

http 메서드

http에서 사용이 많이 되는것은 get과 post이며 다음과 같이 설명 할 수 있다.

  • GET 👉 데이터를 받아올 때 사용
  • POST 👉 body에 데이터를 생성 / 수정 / 조회할 때 사용

Response의 구조

📖 status line
요청의 상태를 보내야하기 때문에 status line부터 시작한다.

  • HTTP version
    HTTP 버전

  • status code
    응답 상태 코드

  • status text
    응답의 상태를 설명하는 텍스트

나머지 Headers와 Body는 Request의 구조와 같다.

response status code

200번대는 Success, 400번대는 프론트단 error 500번대는 server error이다.(그렇다고 서버가 터진 이유는 백에서만 있진 않다고한다.)

자세히 알고싶다면 mdn을 참고하자 👇

https://developer.mozilla.org/ko/docs/Web/HTTP/Status

profile
사람이 좋은 인간 리트리버 신혜리입니다🐶

0개의 댓글