-
728x90
1. HTTP (Hyper Text Transfer Protocol)
HTTP는 데이터를 주고받는 데 사용되는 프로토콜로 HTML 문서와 같은 리소스(문서, 이미지 등)들을 전송하기 위한 규약으로 사용된다.
클라이언트(웹 브라우저)가 서버에 요청(request)을 보내면 서버는 그 요청에 응답(response)을 보내준다.
그럼 클라이언트의 요청과 서버 응답은 어떻게 보낼 수 있을까?
2. HTTP Message
HTTP 메시지는 웹에서 데이터를 주고받는데 사용되며 이 메시지 형식은 사람이 읽을 수 있도록 설계되어있다.
이 메시지는 요청과 응답 두가지 형태가 각각 다른 구조를 가지고 있으며, 서버 주소, 요청 메서드, 상태 코드, target path, 헤더 정보, body 정보 등이 포함되어있다.
다 중요하지만, 우린 그중에서도 헤더 정보, 상태 코드, 요청 메서드에 대해서 알아보려고 한다.
3. 헤더 정보
HTTP 메시지의 헤더에는 다양한 메타데이터를 포함한다.
- 콘텐츠 관련 정보: 클라이언트가 요청한 데이터 유형, 길이, 인코딩 정보
- 인증 관련 정보: 신원을 인증하기 위한 토큰과 같은 정보
- 쿠키 정보: 서버는 클라이언트의 세션 상태를 유지하거나 사용자에 대한 추가 정보 추적
- 캐시 관련 정보: 클라이언트와 서버 간 캐시 동작 제어
클라이언트는 요청을 보낼 때 적절한 헤더를 포함하여 요청을 서버에 전달하고
클라이언트가 요청하거나, 서버 응답 시 헤더에 적절한 정보를 포함하여 정보를 제공할 수 있다.
4. 상태 코드
상태 코드는 HTTP 요청의 결과를 나타낸 정보를 얻을 수 있다.
가장 많이 볼 수 있는 코드 중 200 상태 코드는 'OK' 라는 텍스트와 함께 요청이 성공했음을,
404 코드는 'NOT FOUND' 라는 텍스트와 함께 요청한 리소스를 찾을 수 없음을,
그리고 500은 서버 측 오류가 발생했다는 걸 나타내며 이 HTTP 상태코드로 적절한 조치를 취할 수 있도록 도와준다.
5. 요청 메서드
클라이언트가 서버로부터 특정 동작을 요청할 때 사용하는 명령어
1) 직접 커스텀해서 사용하는 메서드
- GET: 서버로부터 정보를 요청. 오직 데이터를 받기만 함
- POST: 새로운 데이터를 제출하여 리소스 생성, 데이터 전송
- PUT: 리소스 생성하거나 업데이트
- PATCH: PUT과 비슷하지만, 리소스의 일부를 수정
- DELETE: 리소스 제거
2) 브라우저에서 자동으로 처리되는 메서드
- OPTIONS: 서버가 어떤 요청 메서드를 지원하는지 확인
- CONNECT: 보안된 연결 설정, 프록시 서버와 직접 통신할 때 사용
- TRACE: 클라이언트가 서버까지 요청이 도달하는 방법을 확인
6. REST API
간단히 말해서 클라이언트와 서버 사이의 약속된 규칙이라고 생각하면 된다.
여기서 API(Application Programming Interface)란 사용자가 어떤 기능을 사용할 수 있도록 제공하는 함수나 인터페이스 즉, 프로그램과 프로그램을 연결해주는 다리 역할을 말한다.
REST API는 HTTP의 요청 메서드(GET, POST, PUT, DELETE)에 응하는 서버 API와 클라이언트 간 통신 구조를 명시한 것
이를 통해 서버는 어떤 요청을 받았는지 이해하고, 클라이언트는 어떤 요청을 보내야하는지 알 수 있으며 서로가 이해하기 쉽고 효율적으로 통신할 수 있다.
다음엔 자바스크립트에서 HTTP 요청을 해보려고 한다.
'JavaScript, TypeScript' 카테고리의 다른 글
[TS] 타입스크립트 인터페이스(Interface) (0) 2023.04.01 [TS] 타입스크립트(TypeScript)란? (0) 2023.03.29 [JS] 자바스크립트 비동기 처리(Async/Await) (0) 2023.03.23 [JS] 자바스크립트 비동기 처리(Promise) (0) 2023.03.21 [JS] 자바스크립트 콜백 함수(Callback Function) (0) 2023.03.20 댓글