> HTTP
HyperText Transfer Protocol
컴퓨터들끼리 HTML파일을 주고받을 수 있도록 하는 소통방식 또는 약속.
> HTTP의 두가지 특징
각각의 HTTP 통신(요청/응답)은 독립적 이기 때문에 과거의 통신(요청/응답)에 대한 내용을 전혀 알지 못 한다.
즉, 매 통신마다 필요한 모든 정보를 담아서 요청을 보내야 한다.
"김우영"으로 로그인을 해서 마이페이지를 가려고 하는데,
서버는 "김우영"이 로그인을 했는지 누가 로그인을 했는지
모른다는 것!!!
결국 마이페이지를 누를때마다 "서버야 나 김우영인데~ 내 마이페이지를 보여줘" 이런 식으로 해야한다는 것이다.
매 요청마다 로그인을 했다는 정보를 말해주는 대신
티켓 한장을 발급해주는 형식으로 "Token"을 사용하게 된다. -> "인증&인가"와 연결
> Request / Response
GET
, POST
, DELETE
url
1.1
이 널리 쓰인다.POST
이다. "message": "SUCCESS"
와 token
으로 이루어지는 것을 볼 수 있다!!> HTTP Request Methods
가장 간단하고 많이 사용되는 HTTP 메소드
우리가 웹페이지를 띄울 때 필요한 정보들을 모두 GET으로 요청을 보내서 받은 응답을 화면에 띄우는 것
"장바구니에 담은 제품을 조회"
요청 메세지
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"
"price": "₩7,899,000"
"quantity": 1
},
{
"productId": 20
"name": "Mac Pro"
"price": "₩73,376,000"
"quantity": 2
}
]
}
데이터를 생성 및 수정 할 때 많이 사용되기 때문에
대부분의 경우 요청에 body가 포함되서 보내진다
"장바구니에 상품 추가"
요청 메세지
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 + 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"
}
GET - 상품 조회 - 응답 메세지 Body {상품리스트}
POST - 상품 수정 - 요청 메세지 Body {추가 상품}
DELETE - 상품 수정 - 요청 메세지 Body {삭제 상품}
> Response Status Codes
> Cf
https://finance.naver.com/login
=> URL/login
=> URI