Hyper Text Transfer Protocol
문서와 문서가 링크로 연결되어 있는 것을 어떻게 주고 받을 지에 대한 소통방식.
▪︎ 컴퓨터의 통신 HTTP.
유저 컴퓨터에서 요청
request
-> 서버 컴퓨터에서 처리 -> 결과값을 유저에게 전송response
stateless
HTTP 개별통신은 모두 독립적이어서 과거의 HTTP 통신의 결과를 보존하지 않는 것.
따라서 로그인 후, 다시 또 로그인 해야하는 것.
토큰
이라는 딱지를 얹어서request
하면 서버에서 같이 받아들인다.즉, 클럽에서 팔찌를 받고서 클럽을 나갔다가 다시 들어올 때 팔찌를 보여주면 그냥 통과가 되듯이..
유저가
아이디, 비번
을 가지고 로그인 요청을 하면 서버로부터토큰
을 받는다.
그 토큰과 함께request
를 한다.
서버는토큰
을 확인 후response
한다.
메세지 형식이며,
request
는 대부분 프론트엔드에서 보낸다.
1개의 request에는 1개의 response가 세트이다.
즉, 한 번에 한 개만 요청 할 수 있다.
Start Line - 요청의 첫번째 줄
GET / login HTTP/1.1
HTTP method - 요청이 의도한 액션을 정의 (GET method)
Request targe - 요청이 전송되는 목표 url ()
HTTP version - HTTP 버전
Headers - 요청의 메타데이터(키/값 형태를 띄고 있는 객체형태)를 담고 있는 부분
Host : www.wecode.co.kr
User-Agent : chrome
Content-Type : application/json
Content-Length: 50
Body - 요청의 실제 내용 (요청 메소드에 따라 존재하지 않을 수 있음)
Body : {
“username” : “”wecode,
“Password” : ”wecode123”
}
Start line : POST / users/login HTTP/1.1
Headers : Content-Type, Content-Length
Body : request에 따라 응답값이 바뀌어서 전달 함.
토큰은 다른 로그인이 필요한 경우에..(유효기간이 있으나 따로 설정)
아이디랑 비밀번호를 중요한 정보기 때문에 토큰으로 바꿔서 관리.
백엔드에서 body에 담기는 양식(키값)을 정해준다.
- GET : 데이터를 받아 올 때 사용, 웹페이지에 접속해서 필요한 데이터를 불러올 때 사용
즉, 내가 원하는 데이터를 데이터베이스에서 가져와줘
- POST : 데이터를 생성 / 수정할 때 사용. 바디에 담는 내용이 핵심
데이터를 서버에 전달할테니, 서버에서 알아서 수정이나 생성 해줘
- DELETE: 서버에 저장된 특정데이터를 삭제할 때 (직관적으로).
post
나get
에서도 삭제함.
요청 메소드에 따라 존재하지 않을 수 있다
Status Line: 응답에 대한 상태 첫번째줄
HTTP version(HTTP버전) -> status code(응답상태코드) -> status text (응답의 상태를 설명하는 텍스트)
HTTP/1.1 404 Not Found
HTTP/1.1 200 SUCCESS
Headers (request와 동일) 응답의 메타데이터를 담고 있는 부분
Content-Type:
Date:
body (응답해줄 데이터) - request
에 따라 응답값이 바뀌어 전달
객체 형식
{ “message” : ”login success!”,
“Token”: “dfknw”
}
Success
200: ok, 201 : created
Error
400: bad request (요청주소가 잘못됐을때),
401: Unauthorized (회원이 아닌데 회원인척),
403: Forbidden (회원인데 자격이 안됌),
404: Not found (No data).-> (프론트에서 해결)
Server Error
500: internal server error
(서버가 터졌을 때 생기는 에러.
서버 터지는 경우, 프론트가 제대로 데이터를 안줬을 때도 터지는 경우 있음.)
한번 요청에 한번의 결과가 오기 때문에 400, 500 같이 뜨진 않고, 한번의 오류만 뜸
서버에서부터 브라우저로 전송되는 정보가 암호화되지 않는다는 점이었다.
정보가 암호화 되어있지 않는다는 것은 쉽게 해킹이나 데이터를 도난 당할 수 있다는 것이다.
그래서 보안이 강화된 HTTPS 가 나온 것.