HTTP(🕹HyperText 🕹Transfer 🕹Protocol)
문서와 문서가, 링크로 연결되도록 하는 태그로 구성된 언어라는 뜻!
문자 의미 그대로 전송, 전송은 ⚡️보내는 주체와 ⚡️받는 주체가 있다는 것이 특징!
Protocol(협약, 통신규약), 컴퓨터와 컴퓨터 끼리 통신을 할때 어떻게 주고 받을지에 대한 ⚡️약속이다.
컴퓨터들끼리 HTML파일을 주고받을 수 있도록 하는 소통방식 또는 약속이 HTTP 이다
🤔 HTTP의 두가지 특징
모든 통신의 핵심은 Request(요청)과 Response(응답)이다.
Stateless(상태없음), 각각의 HTTP 통신(request, response)는 독립적이기 때문에 지난 통신(request, response)에 대한 내용을 전혀 알지 못한다. 이런 특징 때문에 매번 모든 정보를 담아서 요청을 보내야한다.
연속된 데이터 처리의 필요로 인해 토큰, 쿠키, 세션, 로컬스토리지 같은 기술이 만들어졌다.
가는말이 고와야 오는말이 곱다
1.Start Line:
i. HTTP Method: 요청이 의도한 목적을 정의한느 부분 ( GET / POST / DELETE )
ii. Request Target: request 가 전송될 목표 url
iii. HTTP version: HTTP version을 표시하는 부분
Headers: {
Host: "요청을 보내는 목표의 주소(웹사이트의 주소)",
User-Agent: "요청을 보내는 클라이언트 정보(chrome, firefox ...)",
Content-Type: "body의 타입(application/json)",
Content-Length: "body 내용의 길이",
Authorization: "인증/인가를 위한 토큰을 담는곳",
...
}
Body: {
"user_email": "amusesla@gmail.com",
"user_password": "password"
HTTP/1.1 404 Not Found
HTTP/1.1 200 SUCCESS
Headers: {
Host: "요청을 보내는 목표의 주소(웹사이트의 주소)",
Service: "요청을 보내는 클라이언트 정보(chrome, firefox ...)",
Content-Type: "body의 타입(application/json)",
Content-Length: "body 내용의 길이",
Authorization: "인증/인가를 위한 토큰을 담는곳",
...
}
Body: {
"message": "SUCCESS"
"token": "blabla0123thinkiamtoken3210" (암호화된 유저정보)
}
GET
데이터를 받아오기만 할 때 사용되는 메서드: 노출되는 데이터 형식
POST
데이터를 생성 / 수정 할 때 사용되는 메서드
DELETE
삭제할때 쓰는 메서드