[HTTP] HTTP란 무엇인가 ?

김기용·2020년 10월 26일
0
post-thumbnail

🤔 HTTP

HTTP(🕹HyperText 🕹Transfer 🕹Protocol)

🕹 HyperText

문서와 문서가, 링크로 연결되도록 하는 태그로 구성된 언어라는 뜻!

🕹 Transfer

문자 의미 그대로 전송, 전송은 ⚡️보내는 주체와 ⚡️받는 주체가 있다는 것이 특징!

🕹 Protocol

Protocol(협약, 통신규약), 컴퓨터와 컴퓨터 끼리 통신을 할때 어떻게 주고 받을지에 대한 ⚡️약속이다.

컴퓨터들끼리 HTML파일을 주고받을 수 있도록 하는 소통방식 또는 약속이 HTTP 이다


🤔 HTTP의 두가지 특징

🕹 Request vs Response

모든 통신의 핵심은 Request(요청)Response(응답)이다.

🕹 Stateless

Stateless(상태없음), 각각의 HTTP 통신(request, response)는 독립적이기 때문에 지난 통신(request, response)에 대한 내용을 전혀 알지 못한다. 이런 특징 때문에 매번 모든 정보를 담아서 요청을 보내야한다.

연속된 데이터 처리의 필요로 인해 토큰, 쿠키, 세션, 로컬스토리지 같은 기술이 만들어졌다.


Request vs Response

가는말이 고와야 오는말이 곱다

🕹 Request 3가지 구조

1.Start Line:
i. HTTP Method: 요청이 의도한 목적을 정의한느 부분 ( GET / POST / DELETE )
ii. Request Target: request 가 전송될 목표 url
iii. HTTP version: HTTP version을 표시하는 부분

  1. Headers: 요청에대한 추가 정보를 담고있다
    KEY : VALUE 값으로 정의 되어있다. (JavaScript는 객체, Python은 dictionary형)
Headers: {
	Host: "요청을 보내는 목표의 주소(웹사이트의 주소)",
	User-Agent: "요청을 보내는 클라이언트 정보(chrome, firefox ...)",
  	Content-Type: "body의 타입(application/json)",
  	Content-Length: "body 내용의 길이",
  	Authorization: "인증/인가를 위한 토큰을 담는곳",
  ...
}
  1. Body: 해당 요청의 실제 내용(POST, GET)
Body: {
  "user_email": "amusesla@gmail.com",
  "user_password": "password"

Response 3가지 구조

  1. Status Line: 응답 상태를 나타낸다.
    i. HTTP Version: HTTP Version
    ii. Status Code: 응답 상태를 나타내주는 상태코드
    iii. Status Text: 응답 상태를 문자로 설명해주는 TEXT
HTTP/1.1 404 Not Found
HTTP/1.1 200 SUCCESS
  1. Headers: 요청의 해더와 동일 (User-Agent 대신, Service 헤더가 사용된다)
Headers: {
	Host: "요청을 보내는 목표의 주소(웹사이트의 주소)",
	Service: "요청을 보내는 클라이언트 정보(chrome, firefox ...)",
  	Content-Type: "body의 타입(application/json)",
  	Content-Length: "body 내용의 길이",
  	Authorization: "인증/인가를 위한 토큰을 담는곳",
  ...
}
  1. Body: 요쳥에 따라 응답 형태가 없을 수도 있다. JSON으로 반환
Body: {
  "message": "SUCCESS"
  "token": "blabla0123thinkiamtoken3210" (암호화된 유저정보)
  }

HTTP Request Methods

GET
데이터를 받아오기만 할 때 사용되는 메서드: 노출되는 데이터 형식
POST
데이터를 생성 / 수정 할 때 사용되는 메서드
DELETE
삭제할때 쓰는 메서드

중요 포인트

  1. HTTP는 컴퓨터 끼리의 소통을 위한 통신규약이다.
  2. HTTP 통신은 Request(요청) 과 Response(응답)으로 이루어 진다.
  3. HTTP 통신은 일회성, 매 요청과 응답은 이전상태를 기억하지 못한다! Stateless
profile
매일 새로운 배움을 통해 꾸준히 성장하는 것을 목표를 두고 있습니다. 논리적인 사고로 문제해결 하는것에 희열을 느끼고 언젠가 제가 만든 결과물들이 사람들에게 편이를 제공하며 사용되는 날을 간절히 소망하고 있습니다. 🙏

0개의 댓글