HTTP에 대해서

Psj·2020년 11월 2일
0

Python

목록 보기
22/41

HTTP(HyperText Transfer Protocol)

HyperText

HTTP를 설명하기전 HTML을 다시 짚고넘어가보면 HTML은 문서와 문서가 링크로 연결되도록 하는 태그로 구성된 언어로 웹페이지를 만들기위해서 웹브라우저 위에서 동작하는 언어를 뜻한다.

HTTP는 HTML로 만든 웹페이지를 어떻게 주고 받을것인가에 대해 관련되어 있다.

Transfer

Transfer는 사전적 의미로 "전송하다"라는 의미를 가진다.
우리가 아무리 멋있는 HTML파일을 만들어도 그것을 우리의 로컬에만 가지고 있다면 의미가 없다.

우리가 편지를 어떠한 대상에게 보내야 응답이 오듯이
우리가 만든 HTML파일도 웹사이트에 널리 알리고 사람들과 공유가 되어야 비로서 의미가 있다.
이렇게 공유하기위해 우리는 다른컴퓨터에게 나의 HTML파일을 전송해야한다.
이러한 전송은 보내는 주체와 받는주체가 있다는 것을 알아두어야한다.

Protocol

protocol은 협약, 통신규약이라는 의미를가진다.
물리적으로 떨어진 컴퓨터들끼리 어떤방식으로 HTML파일을 주고받을지에 대한 약속이다.

그래서 HTTP란?

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

HTTP의 두가지 특징

1. Request (요청) / Response (응답)

위에서 전송은 보내는 주체와 받는주체가 있어야 한다고 하였다.
HTTP통신의 핵심은 요청과 응답이다.
예를 들어 우리가 어떤 유투브영상을보기위해 링크를 클릭하면 이것이 서버에 Request(요청)하는것이고 서버에서는 이 요청을 처리해 나에게 영상띄울수 있게 하는 Response(응답)을 하는것이다.

2. Stateless

stateless를 문자 그대로 말하면 상태없음이다.

HTTP는 한번의 전송과 요청이 끝나면 과거의 전송과 요청을 기억하지 못한다.
그렇다면 우리는 똑같은 내용, 엄청나게 많은 정보이더라도 계속 전송과 요청을 주고받아야 한다는 뜻이된다.
이러한 통신방식은 효율적이지 못하다.

그래서 연속된 작업이 필요할 경우에 저런 비효율적인 방식을 개선하고자 있는것이
로그인 토큰, 브라우저의 쿠기,세션,로컬스토리지 같은 기술이다.

Request/Response

Request 메시지 구조

Request 메시지 예시

Response 메시지 구조

Response Status Codes

profile
Software Developer

0개의 댓글