hyperText
html(HyperText Markup Language)
HyperText = 문서와 문서가 링크로 연결 되어 있음을 뜻함
transfer
전송하다 = 물건이나 편지 따위를 보내다
HTML로 만든 웹페이지 문서(파일)를 보낸다.
Protocol
컴퓨터 끼리 어떻게 html 파일 주고 받을지에 대한 소통방식 또는 약속입니다.
http가 추상적으로 생각하면 어렵다고 생각할 수 있습니다. 하지만 쉽게 생각하자면 html을 전송하는 규칙이라고 생각하면 쉽습니다.
HTTP 요청과 응답은 그저 메세지에 불과 합니다
http를 어렵게 생각할 필요없습니다. 우리가 유튜브에서 고양이 영상을 클릭하면 우리는 유튜브의 서버에게 영상을 요청하고 서버는 이를 우리에게 보내줍니다. 이런 일련의 과정이 http 통신 과정입니다.
HTTP 통신 (요청 / 응답)은 과거의 HTTP 통신에 대한 내용을 전혀 알지 못 함
매 통신 마다 필요한 모든 정보를 담아서 요청을 보낸니다!
만약, request1이 있고 request2가 있다면 보통 우리는 request2가 request1의 정보를 어느 정도는 기억하고 있다고 생각할 수 있는데 HTTP통신은 과거의 통신 내용을 전혀 기억하지 못하기 때문에 통신 마다 필요한 모든! 정보를 담아서 요청을 보내야 합니다.
http request는 단지 메세지에 불과합니다. request 메세지는 세 부분으로 되어있는데요.
Start Line
Headers
Body
으로 구성 되어 있습니다.
- Http Method: 해당 요청이 의도한 액션을 정의하는 부분입니다.
여기서 자주 등장하는 GET, POST, DELETE가 많이 쓰입니다.- Request target: 해당 request가 전송되는 목표 url입니다.
- Http version: 말 그대로 사용되는 HTTP 버전을 말합니다. 현재 1.1버전이 널리 쓰이고 있습니다.
Get
데이터를 받아오기만 할 때
웹페이지에 접속해서 필요한 데이터를 불러올 때
POST
데이터를 생성 / 수정 할 떄 사용
Body에 담는 내용이 핵심!
Delete
서버에 저장된 특정 데이터를 삭제할 때
해당 요청에 대한 추가 정보(메타 데이터)를 담고있는 부분입니다.
정보는 key: value 형태로 되어 있습니다. javascript에선 객체, python에서는 딕셔너리
해당 요청의 실제 내용. 주로 bodt를 사용하는 메소드는 POST입니다.
// 로그인 시에 서버에 보낼 요청의 내용
Body: {
"user_email": "jun.choi@gmail.com"
"user_password": "wecode"
}
응답도 마찬가지로 메시지입니다.
응답의 구조도 마찬가지로 크게 세 부분으로 나뉘어져 있습니다.
Start Line
Headers
Body
요청의 헤더와 동일합니다. 다만, 응답에서만 사용되는 헤더의 정보가 잇습니다.
User-agent 대신, Server 헤더가 사용됩니다.
요청의 바디와 일반적으로 동일합니다. 다만, 전송할 필요가 없는 내용은 응답하지 않을 수 있습니다.
ex) 로그인 요청에 대해 성공했을 때 응답의 내용
Body: {
"message": "SUCCESS"
"token": "kldiduajsadm@9df0asmzm" (암호화된 유저의 정보)
}
이름 그대로 어떤 데이터를 서버로 부터 받아(get)올 때 주로 사용하는 메소드입니다.
데이터를 받아오기만 할 때 사용합니다.
가장 간단하고 가장 많이 사용하는 메소드입니다.
데이터를 생성 / 수정 할 때 주로 사용되는 메소드입니다.
데이터를 생성 및 수정 할 때 많이 사용되기 때문에 대부분의 경우 요청에 body가 포함돼서 나갑니다.
이름에서 파악할 수 있듯이 특정 데이터를 서버에서 삭제 요청을 보낼 때 사용하는 메소드입니다.
우리가 가장 많이 접하는 404코드부터 자주 만나는 코드를 정리해봤습니다.