웹 Web
웹은 정보 공유의 장입니다.
웹을 통해 정보를 전송하고 공유할 수 있습니다. 백엔드가 웹에서 중요한 이유는 이러한 정보를 처리하고 관리하여 사용자에게 적절한 응답을 제공하기 때문입니다.
HTTP
HTTP는 웹에서 정보를 주고받는 프로토콜로,
클라이언트가 서버에게 요청을 보내고, 서버는 이에 응답하는 방식으로 동작합니다. 이는 보내는 사람과 받는 사람 간의 약속된 형식을 따릅니다.
예시를 살펴보겠습니다!
사용자(View)
-> "이름, 나이, 주소, 연락처 .." 주면서 회원가입 시켜줘 '요청'
HTTP Request
HTTP API Request는 클라이언트가 서버에게 리소스에 대한 특정 동작을 요청하기 위해 보내는 메시지입니다.
- HTTP Method (HTTP 메서드): 요청의 목적을 나타냅니다. 주요 HTTP 메서드에는 GET, POST, PUT, DELETE 등이 있습니다. 회원가입 요청의 경우 주로 POST 메서드가 사용됩니다.
- URL (Uniform Resource Locator): 요청을 수행할 리소스의 위치를 지정합니다. 예를 들어, 회원가입을 위한 URL일 수 있습니다.
- HTTP Version (HTTP 버전): 사용되는 HTTP 프로토콜의 버전을 나타냅니다. 예를 들어, HTTP/1.1 또는 HTTP/2.0 등이 있습니다.
- Headers (헤더): 요청에 대한 부가적인 정보를 포함합니다. 이 정보에는 인증 정보, 캐시 제어, 컨텐츠 유형 등이 포함될 수 있습니다.
- Body (본문): 요청의 본문에는 클라이언트가 서버로 전달하려는 데이터가 포함됩니다. 예를 들어, 사용자가 제공한 이름, 나이, 주소, 연락처 등의 정보가 여기에 포함될 수 있습니다.
내가 생각하는 주요 요소와 이유🧐
- 헤더의 활용: 요청 또는 응답에 부가적인 정보를 포함하여 통신의 목적을 명확히하거나 보안을 강화하는 데 사용됩니다.
- 인증을 위한 Authorization 헤더를 포함하여 요청을 보내면, 서버는 해당 사용자의 신원을 확인하고 권한을 부여할 수 있습니다.
- Content-Type 헤더를 사용하여 요청이나 응답의 본문 데이터 유형을 명시할 수 있습니다. 이를 통해 클라이언트와 서버 간의 통신이 보다 효율적이고 안전하게 이루어질 수 있습니다.
- 본문의 유효성 검사: 클라이언트가 전송한 데이터가 서버에서 처리될 수 있는 유효한 형식인지 확인하는 과정을 말합니다. 이는 보안 문제를 방지하고 서버의 안정성을 유지하는 데 중요합니다.
- 회원가입을 위한 요청의 경우 클라이언트가 전송한 사용자 정보를 검사하여 필수 항목이 누락되었는지, 형식이 올바른지 등을 확인할 수 있습니다. 이를 통해 잘못된 데이터로 인한 시스템 오류를 방지하고, 사용자 경험을 향상시킬 수 있습니다.
옆짝꿍은 Response를 담당하여 제게 설명을 해줬는데요! 아래는 정리된 내용입니다
회원가입
API(
Controller
-> model에서 회원가입 시킨다( database입장에서는 insert )
-> Controller )
HTTP Response
HTTP API 응답은 클라이언트가 서버에 요청을 보내고, 서버가 그 요청에 대한 응답으로 반환하는 데이터를 의미하며
일반적으로 텍스트 형식으로 되어있으며 주로 json or xml 형식으로 제공합니다.
Http response 메세지는 request와 동일하게 공백(blank line)을 제외하고 3가지 부분으로 나누어집니다.
- Status Line
HTTP 프로토콜은 요청에 대한 상태를 나타내는 상태 코드를 반환합니다. ➡️상태 코드는 요청이 성공적으로 처리되었는지, 어떤 종류의 오류가 발생했는지 등을 알려줍니다. 일반적으로 사용되는 상태 코드에는 200 (OK), 404 (Not Found), 500 (Internal Server Error) 등이 있습니다. 형식은 http version, Status Code, Status Text 3가지 부분으로 구성되어 있습니다. 예시는 아래와 같습니다.
HTTP/1.1 200 OK
[HTTP version] [Status Code] [Status Text] - Headers
헤더는 응답의 메타데이터를 포함하고 있습니다. 이는 응답의 유형, 길이, 서버 정보 등을 포함할 수 있습니다.
형식은 Request의 헤더와 동일, 다만 response에서만 사용되는 header 값들이 있습니다.
예를들면 User-Agent 대신 Server헤더가 사용됩니다. - Body
응답 데이터를 포함합니다. 주로 json, xml 또는 텍스트 형식, 결과 or 오류메세지 제공합니다. Request 와 마찬가지로 모든 response가 body가 있지는 않음. 데이터를 전송할 필요가 없을 경우 body 가 비어있게 됩니다.
돌아보면🧐
이미 React를 활용한 2개의 프로젝트와 Java Swing을 활용한 프로젝트 한 경험으로 HTTP Request와 Response 구조를 익혔습니다. 이렇게 이론으로 정리하고 설명하니 더욱 머릿 속 정보 체계가 견고해지는 느낌이었습니다 : )
'BackEnd' 카테고리의 다른 글
클라우드 기반 백엔드 기초 : Build.Gradle 키워드 (0) | 2024.04.30 |
---|---|
클라우드 기반 백엔드 기초 : 페어프로그래밍(2) (0) | 2024.04.29 |
미니 프로젝트 회고 (0) | 2024.04.17 |
클라우드 기반 백엔드 기초: 애자일과 설계 (0) | 2024.04.15 |
클라우드 기반 백엔드 기초 : 내가 생각하는 객체 지향이란? (2) | 2024.04.11 |