HTTP : 데이터를 주고받는 양식을 정의한 통신 규약 중 하나
- 매우 범용적인 양식을 가지고 있어 전 세계적으로 널리 쓰이는 통신 규약
- 통신 규약 : 컴퓨터나 원거리 통신 장비 사이에서 메시지를 주고받는 양식과 규칙 체, 보통 프로토콜이고 부름
- 현재 이용되는 대부분의 웹 서버가 HTTP를 기반으로 정해준 규칙에 맞게 데이터를 주고 받음
- 모든 브라우저는 HTTP 프로토콜을 기본으로 지원하기 때문에 여러분은 매일 HTTP를 이용하고 있음
Browser |
– HTTP Request → | Server |
← HTTP Response – |
- HTTP에서는 언제나 Request, Response라는 개념이 존재
- 서버와 브라우저의 동작
- 브라우저는 서버에게 자신이 원하는 페이지(URL 등의 정보)를 요구(Request)
- 서버는 브라우저가 원하는 페이지가 있는지 확인하고, 있다면 해당 페이지에 대한 데이터를 실어 응답(Response) 하고, 없다면 없는 페이지에 대한 데이터를 반환 함
- 브라우저는 서버에게 전달 받은 데이터를 기반으로 브라우저에 그려줌
- Headers 탭
- General : 브라우저에서 서버로 보낸 Request 데이터
- HTTP 상태 코드(Status Code)를 통해 브라우저와 서버간의 요청, 응답 과정에서 발생할 수 있는 상황들을 표현할 수 있음
- HTTP 상태 코드는 3자리 숫자로 이루어져 있음
- 첫 번째 자리 숫자는 상태 코드의 분류를 나타내는 용도로 사용되며, 나머지 두 자리는 세부적인 정보를 나타냄
- 1xx (Informational)
- 1xx 상태 코드는 요청이 수신 되었으며 처리가 계속되고 있음
- 주로 웹 브라우저와 같은 클라이언트가 서버와의 연결 상태를 확인하기 위해 사용
- 2xx (Successful)
- 2xx 상태 코드는 클라이언트의 요청이 성공적으로 처리 되었음
- 가장 많이 사용되는 상태 코드는 200
- 이는 요청이 성공적으로 처리 되었으며 클라이언트가 요청한 데이터가 서버에서 제공됨을 의미
- 3xx (Redirection)
- 3xx 상태 코드는 클라이언트가 추가적인 조치를 취해야 함
- 이 상태 코드는 주로 페이지 이동, 리다이렉션 등에 사용
- 4xx (Client Error)
- 4xx 상태 코드는 클라이언트에 오류가 있음
- 이 상태 코드는 주로 클라이언트의 잘못된 요청, 인증 오류 등에 사용
- 가장 많이 사용되는 상태 코드는 404
- 이는 클라이언트가 요청한 페이지나 리소스를 서버에서 찾을 수 없음을 의미
- 5xx (Server Error)
- 5xx 상태 코드는 서버에 오류가 발생했음
- 이 상태 코드는 주로 서버의 오류, 서버 과부하 등에 사용
- 가장 많이 사용되는 상태 코드는 500입니다. 이는 서버 내부 오류가 발생함을 의미
- 1xx (Informational)
Client | Request → |
Server |
← Response |
- Method (호출/요청 방식)
- 가장 대표적인 요청 방식은 GET 과 POST가 있음
- GET : 이름 그대로 어떤 리소스를 얻을 때 사용
- 브라우저의 주소창에 URL을 입력하면 GET 메서드를 사용해서 서버에 요청을 보냄
- POST : 웹 서버에 데이터를 게시할 때 사용
- (ex. 회원가입, 게시글 작성, 댓글 작성)
- DELETE : 웹 서버 데이터 삭제할 때 사용
- GET : 이름 그대로 어떤 리소스를 얻을 때 사용
- 가장 대표적인 요청 방식은 GET 과 POST가 있음
- Header (추가 데이터. 메타 데이터)
- 브라우저가 어떤 페이지를 원하는지
- 요청 받은 페이지를 찾았는지
- 요청 받은 데이터를 성공적으로 찾았는지
- 어떤 형식으로 데이터를 보낼지
- 외에도 아주 다양한 의사 표현을 위한 데이터를 모두 Header 필드에 넣고 주고 받음
- Payload (데이터. 실제 데이터)
- 서버가 응답을 보낼 때에는 항상 Payload를 보낼 수 있음
- 클라이언트(브라우저)가 요청을 할 때에도 Payload를 보낼 수 있음
- 그리고 "GET method를 제외하곤 모두 Payload를 보낼 수 있다" 는게 HTTP에서의 약속
'🗂️ Study > 🌿Spring' 카테고리의 다른 글
Spring MVC (0) | 2024.05.21 |
---|---|
Lombok & application.properties (0) | 2024.05.21 |
Test Code (0) | 2024.05.21 |
Server (0) | 2024.05.17 |
Gradle (0) | 2024.05.17 |