How do we communicate?
H : Hyper Text : HTML 문서와 문서가 링크로 연결되어 있음을 뜻함
T : Transfer : HTML로 만든 웹페이지 문서(파일)을 보낸다
P : Protocol : 텍스트를 교환,전송을 위한 통신 규약이다
1요청 에는 1응답
HTTP 두가지 특징
- Request / Resplse
소통의 핵심은 요청과 응답. 인간의 소통방식이 컴퓨터끼리의 소통방식에도 적용된 것
말이 아닌 메세지의 형식으로 요청하고 응답한다
- Statelsee
HTTP 개별 통신은 모두 독립이어서, 과거의 HTTP 통신의 결과(상태)를 보존하지 않는다
내가 원하는 응답을 받기 위해서는 매 통신마다 사전에 필요한 모든 정보를 담아서 요청을 보내야만 한다
HTTP 메세지 구조
- Request 메세지 구조
- Start Line : 요청의 첫번째 줄 (HTTP method : 요청이 의도한 액션을 정의, Request target : 요청이 전송되는 목표 url, HTTP version : HTTP 버전)
- Headers : 요청의 메타데이터를 담고 있는 부분 (Host, User-Agent, Content-Type, Content-Length)
- Body : 요청의 실제 내용 (요청 메소드에 따라 존재하지 않을 수 있음)
- Response 메세지 구조
- Status Line : 응답의 첫번째 줄 (HTTP version : HTTP 버전, Status Code : 응답 상태 코드, Status Text : 응답의 상태를 간략히 설명하는 텍스트)
- Headers : 응답의 메타데이터를 담고 있는 부분
- Body : 응답해줄 데이터
HTTP Request Methods
- GET : 데이터를 받아오기만 할 때 사용. 웹페이지에 접속해서 필요한 데이터를 불러올 때 사용
- POST : 데이터를 생성/ 수정할 때 사용. Body에 담는 내용이 핵심!
- DELETE : 서버에 저장된 특정 데이터를 삭제할 때 사용
Status code
- Success :
- 200: OK : 문제없이 요청에 대한 처리가 백엔드 서버에서 이루어지고 나서 오는 응답코드
- 201: Created : 무언가가 잘 생성되었을 때 오는 Status code
POST 요청 또는 일부 PUT 요청 이후에 따라온다
- 204: No Content : 요청이 성공했으며 제공할 응답메세지가 없을 경우 사용하는 Status code
- Error :
- 400: Bad Request : 해당 요청이 잘못되었을 때 보내는 Status code
- 401: Unauthorized : 해당 요청을 진행하려면 먼저 로그인 또는 회원가입이 필요하다는 의미를 나타내는 Status code
- 403: Forbidden : 유저가 해당 요청에 대한 권한이 없다는 의미를 나타내는 Status code
접근 불가능한 정보에 접근했을 경우를 의미
- 404: Not found : 서버가 요청받은 리소스를 찾을 수 없을 때 나타내는 Status code 이때의 리소소는 브라우저에서는 알려지지 않은 URL을 의미한다.
- Server Error :
- 500: internal Server Error : 웹 사이트 서버에 문제가 있을때 나타내는 Status code (서버는 정확한 문제에 대해 더 구체적으로 설명할 수 없다)
Status code & Status message : 요청이 성공했을 때 응답으로 메세지로 분기 처리를 해둘 수 가 있다.
원활한 개발을 위해 분기 처리로 status code로 하는 것이 좋다