🤷 기간 : 2021.04.22 ~ 2021.04.22
🤷 자료 : https://www.notion.so/wecode/HTTP-562dae4a180e4c2f80c5110fd71b11c2
🤷 내용: HTTP 기본..!
HTTP는 HyperText Transfer Protocol의 약자이다
HyperText
는 문서와 문서가 링크로 연결 되어있음을 뜻함HTML
만든 웹페이지 문서(파일)을 보낸다HTML파일(HyperText)
을 주고 받을지에 대한 약속이다. Q. 그래서 HTTP란 무엇인가요?
A. 컴퓨터들끼리 HTML파일을 주고받을 수 있도록 하는 소통방식 또는 약속이다.
어렵게 생각할 필요 없다. 사실은 우리에게 친숙한 소통방식을 컴퓨터의 소통방식에도 적용한 것이다.
State(상태) + less(없음)
프론트엔드(클라이언트)
에서 백엔드(서버)
에 일(데이터 처리)
을 시작하게 하기 위해 보내는 메세지다. 이 메세지의 구조는 크게 세 부분으로 구성되어있다.Start Line
: 요청의 첫번째 줄에 해당한다. 메소드
, URL
, 버전
, 상태
로 구성POST
/users
/login HTTP
/1.1
Headers
: 해당 요청에 대한 추가 정보(메타 데이터)host
,User-Agent
, Content-Length
, Content-Type
..Body
: 해당 요청의 실제 내용. 주로 Body를 사용하는 메소드는 POST다. "username": "wecode" "password":"wecode123"
응답도 요청과 마찬가지로 메세지다.
HTTP 규약에 따른 응답의 구조도 또한 크게 세 부분으로 구성되어있다.
Status Line
: 응답의 상태 줄이다. 응답은 요청에 대한 처리상태를 클라이언트에게 알려주면서 내용을 시작한다. 마치, 편지의 응답에 "응. 잘 지냈어" 라고 안부 인사를 건네는 것과 같다. 메소드
, URL
, 버전
, 상태
로 구성HTTP
/1.1
200
SUCCESS
Headers
: 요청의 헤더와 동일하다. Body
: 요청의 Body와 일반적으로 동일하다. 해당 메소드들은 프론트엔드(클라이언트)의 입장에서 요청의 의도가 담긴 것이다!
백엔드의 입장에서 생각하면 혼란이 올 수 있으니 주의할 것!
GET메소드
로 request
을 보내서 받아온 응답을 화면에 띄우는 것이다body
이 없을 수도 있따.! !! !GET /shop/bag HTTP/1.1**
Headers: {
"HOST": "https://www.apple.com/kr"
"Authroization": "kldiduajsadm@9df0asmzm" (유저가 본인임을 증 명할 수 있는 인증/인가 토큰)
}
HTTP/1.1 200 SUCCESS
Body: {
"message": "SUCCESS"
"carts": [
{
"productId": 10
"name": "Pro Display XDR - Nano-texture 글래스"
"price": "₩7,899,000"
"quantity": 1
},
{
"productId": 20
"name": "Mac Pro"
"price": "₩73,376,000"
"quantity": 2
}
]
}
데이터를 생성 / 수정 할 때 주로 사용되는 메소드
대부분의 경우 요청에 body가 포함되서 보내진다
ex)장바구니에 맘에 드는 상품을 담는다
POST /shop/bag HTTP/1.1
Headers: {
"HOST": "https://www.apple.com/kr"
"Authroization": "kldiduajsadm@9df0asmzm" (유저가 본인임을 증 명할 수 있는 인증/인가 토큰)
}
Body: {
product: {
"productId": 30
"name": "12.9형 iPad Pro Wi-Fi + Cellular 128GB"
"color": "스페이스 그레이"
"price": "₩1,499,000"
"quantity": 1
}
}
HTTP/1.1 201 SUCCESS
Body: {
"message": "SUCCESSFULLY CARTS UPDATED"
}
DELETE /shop/bag HTTP/1.1
Headers: {
"HOST": "https://www.apple.com/kr"
"Authroization": "kldiduajsadm@9df0asmzm" (유저가 본인임을 증 명할 수 있는 인증/인가 토큰)
}
Body: {
productId: 30
}
HTTP/1.1 201 SUCCESS
Body: {
"message": "productId 30 DELETED"
}