📌 HTTP란?
🌟 How do we commmunicate?
Hyper Text: HTML(Hyper Text Markup Language): 문서와 문서가 링크로 연결되어 있음
Transfer: HTML 로 만든 웹페이지 문서(파일)를 보낸다
Protocol : 컴퓨터끼리 어떻게 HTML 파일을 주고 받을 지에 대한 소통 방식 또는 약속
📌 How does HTTP work?
- client가 좋아요를 누르거나 swipe를 하면 server한테 request를 하고 server가 response를 한다
📌 HTTP 특징
- Request and Response
- Stateless: HTTP 개별 통신은 모두 독립이어서, 과거의 HTTP 통신 결과(상태)를 보존하지 않는다
📌 Request 메시지 구조
-
start line: 요청의 첫 번째 줄
- HTTP method: 요청이 의도한 액션을 정의
- Request target: 요청이 전송되는 목표 url
- HTTP version: HTTP 버전
POST / login HTTP/1.1
-
Headers: 요청의 메타데이터를 담고 있는 부분. {key : value}의 형태
- Headers : {
host: www.wecode.co.kr
user-agent: chrome
content-type: application.json
content-length: 50
}
-
Body
📌 Response 메시지 구조
- Status Line: 응답의 첫 번째 줄 - 상태를 나타냄
- HTTP version
- Status Code
- Status Text
HTTP/1.1 404 Not found
HTTP/1.1 200 Success
- Headers: 응답의 메타데이터를 담고 있는 부분
{key : value}의 형태
- headers : {
host: www.wecode.co.kr
user-agent: chrome
content-type: application.json
content-length: 50
}
- Body
📌 HTTP Request Methods
- get: 데이터를 받아올 때만 사용. 웹페이지에 접속해서 필요한 데이터를 불러올 때 사용
- post: 데이터를 생성/수정할 때 사용
- delete: DELETE 메서드는 지정된 리소스를 삭제. 204 no content.
📌 Status Code
✏️ Success:
- 200: OK
가장 자주 보게 되는 Status Code. 문제없이 요청에 대한 처리가 백엔드 서버에서 이루어지고 나서 오는 응답코드
- 201: Created
무언가 잘 생성 되었을 때 successfully created. 대게 POST 메소드의 요청에 따라 백엔드 서버에 데이터가 잘 생성 또는 수정 되었을 때 보내는 코드
- 204: No Content
요청이 성공했으며 제공할 응답 메시지가 없을 경우. 주로 delete 메소드의 요청으로 성공적으로 삭제되어서 응답으로 제공할 컨텐츠가 없을 때 사용
✏️ Failure:
- 400: Bad Request
해당 요청이 잘못 되었을 때. 주로 요청의 Body에 보내는 내용이 잘못 되었을 때
- 401: Unauthorized
해당 요청을 진행하려면 먼저 로그인 또는 회원가입이 필요하다라는 의미
- 403: Forbidden
유저가 해당 요청에 대한 권한이 없다는 의미. 접근 불가능한 정보에 접근했을 경우를 의미
- 404: Not found
요청된 URL이 존재하지 않는다는 의미
- 500: Internal Server Error. 서버에서 에러가 났을 때
🎯 위코드 강의를 바탕으로 작성 됨