HTTP

이하영·2022년 5월 7일
0
  1. HTTP 는 컴퓨터 끼리의 소통을 위한 통신규약이다.
  2. HTTP 통신은 Request(요청)과. Response(응답)으로 이루어 진다.
  3. HTTP 통신의 stateless한 특징으로인해 매 요청과 응답은 이전 상태를 알지 못 한다.

http

HTTP : Hyper Text Markup Language

  • hyper text = 문서와 문서가 링크로 연결되어 있음을 뜻 함

  • transfer : 전송하다 = 물건이나 편지 따위를 보낸다, html로 만든
    웹페이지 문서(파일)를 보낸다

  • protocol : 컴퓨터끼리 어떻게 html 파일을 주고 받을 지에 대한
    소통 방식 또한 약속

  • 프론트와 백이 주고 받을때 http 서로 규약을 지키면서 주고 받으며 약속을 지켜 소통하는 방식이다.

Request / Response

http는 요청과 응답의 형태로 이루어져 있다.
http는 먼저 응답이 이루어지지 않는다 즉, 요청이 있어야 응답이 이루어 진다.

response 주체 -> 서버
Requesr 주체 -> 클라이언트

소통의 핵심은 요청과 응답이다. 인간의 소통방식이 컴퓨터끼리의 소통 방식에도 적용된 것. 말이아닌 메세지의 형식으로 요청하고 응답ㅎ반다.

stateless

http개별 통신은 모두 독립이어서, 과거의 http 통신의 결과 (상태)를 보전하지 않는다.

state (상태) + less(없음)

예시)

  • stateful
    카페를 가서 "아이스아메리카노 얼마인가요?" -> 3500원 입니다. => 아.아 상태 저장
    "시럽 넣어서 2개 넣어주세요" -> "네 무엇으로 결제할까요?" => 아.아 + 시럽2개 저장
    "카드로 할게요" -> "네 결제 완료되셨습니다" => 아.아 + 시럽2개 + 카드 저장

  • stateless
    카페를 가서 "아이스아메리카노 얼마인가요?" -> "3500원 입니다."
    "시럽 넣어서 2개 넣어주세요" -> "? 어떤거에 시럽 추가해서 2개 드릴까요?"
    "카드로 할게요" -> "?뭐를 결제한다는거죠?"

이런 경우 어떻게 할까?
응답을 받아서 저장을 한다
즉, 요청을 보낼때 응답한것을 다담아서 계속 말한다.

카페를 가서 "아이스아메리카노 얼마인가요?" -> "3500원 입니다."
"아.아에 시럽 넣어서 2개 넣어주세요" -> "아아 시럽 넣어서 2개 어떻게 결제할까요?"
"아아, 시럽 2개 넣어서 카드로 할게요" -> "아아, 시럽 넣어서 2개, 카드결제 완료 했습니다."

=> 요즘은 토큰을 이용해서 매 통신마다 사전에 필요한 모든 정보를 담아서 요청을 보낸다.

http 메세지 구조

  1. 요청
    Start Line (시작점 첫줄)
    요청의 제목
    서버가 여러개일수도 있고, 목표가 있을건데 그 타켓이 들어가있다.
    html 버전이 들어간다.

Headers
부가 설명이 들어가 있다.

Body
실제 내용 (본문)

  • 때에 따라서 Body가 없을 수도 있다.
  1. 응답
    Status Line
    html의 버전이 들어가 있고
    응답 상태코드가 들어가 있으며
    응답의 상태를 간략하게 설명하는 텍스트가 들어가 있다.

? 왜 메세지로 안보여주고 코드를 보여주는건가?
=> 메세지는 길기때문에 읽기 힘들고 통일성이 없기 때문. 국제적인 통일성을 가지려고 코드를 만들었다.

headers, body는 요청 메세지의 형태와 같다.

http Request Methods

methods 무진장 많다 이런건 외울필요가 없으니 필요할때마다 구글링하시길

몇가지 자주 쓰는 Methods
GET
-> 데이터를 받아오기마 할때 사용, 웹페이지에 접속해서 필요한 데이터를 불러올 때 사용한다.

POST
-> 데이터를 생성/수정 할때 사용, Body에 담는 내용이 핵심이다.

DELEETE
-> 서버에 저장된 특정 데이터를 삭제할 때 사용한다.

0개의 댓글