HTTP가 뭐야?
HTTP는 HyperText Transfer Protocol의 약자로, 인터넷에서 데이터를 주고받을 때 사용되는 프로토콜입니다.
HTTP는 웹 브라우저와 웹 서버 간에 메시지를 교환하여 웹 페이지를 요청하고 전송하는 데 사용됩니다.
HTTP는 클라이언트-서버 모델을 따르며, 클라이언트가 요청(Request)을 보내면, 서버는 이 요청에 대한 응답(Response)을 반환합니다. 요청과 응답은 HTTP 메시지 형식으로 구성되며, 이 메시지는 텍스트 형식으로 작성됩니다.
HTTP는 웹 페이지를 전송하는 데 사용되며, 웹 페이지의 HTML, CSS, JavaScript 및 이미지 등의 리소스를 요청하고 전송합니다.
또한, HTTP는 웹 서버와 데이터베이스 서버, 웹 애플리케이션 서버 등의 서버 간 통신에도 사용됩니다.
HTTP는 기본적으로 TCP/IP 프로토콜 위에서 동작하며, 보안을 강화하기 위해 HTTPS(SSL/TLS 기반)로 대체되는 추세입니다.
HTTP는 웹의 발전과 함께 계속해서 발전하고 있으며, 현재는 HTTP/2, HTTP/3 등의 새로운 버전이 나와 사용되고 있습니다.
Axios 가 뭐야?
axios는 Promise 기반의 HTTP 클라이언트 라이브러리로, Node.js나 브라우저에서 사용할 수 있습니다. axios는 서버와의 HTTP 요청과 응답을 쉽게 처리할 수 있도록 도와주는 라이브러리입니다.
axios는 다음과 같은 기능을 제공합니다.
- HTTP 요청과 응답을 Promise 기반으로 처리할 수 있습니다.
- 브라우저와 Node.js 모두에서 사용할 수 있습니다.
- JSON 데이터를 자동으로 직렬화하고, 응답 데이터도 자동으로 역직렬화합니다.
- 요청과 응답에 대한 인터셉터 기능을 제공하여 요청과 응답을 수정할 수 있습니다.
- HTTP 요청에 대한 취소 기능을 제공합니다.
- HTTP 요청을 취소할 수 있는 CancelToken 기능을 제공합니다.
axios는 간단한 API를 제공하므로, HTTP 요청을 보내는 코드를 빠르게 작성할 수 있습니다. 또한 브라우저와 Node.js에서 모두 사용할 수 있으므로, 클라이언트와 서버 간의 HTTP 통신을 일관성 있게 처리할 수 있습니다.
그래서 ChatLaTeX 프로젝트를 진행할때 Axios를 사용해서 HTTP 요청을 보내는 코드를 간략화했다.
Bearer 는 뭐야?
"Bearer"는 HTTP 인증 프로토콜에서 사용되는 토큰 기반 인증 방식 중 하나입니다.
헤더에 "Authorization" 필드를 포함하여 인증 정보를 전송할 때, "Bearer"는 토큰 기반 인증 방식을 사용한다는 것을 나타내며, 그 뒤에는 인증 토큰이 포함됩니다.
fetch('https://api.openai.com/v1/engines/davinci/completions', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': Bearer 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
},
body: JSON.stringify({
prompt: 'Write a sad poem about my border collie, Pepper',
max_tokens: 100
})
})
.then(response => response.json())
.then(data => {
console.log(data);
});
해당 코드에서 "Bearer" 다음에 오는 인증 토큰은 OpenAI API에 접근하기 위한 인증 토큰입니다. 이 토큰을 API에 제공하여 사용자 인증을 수행합니다. 이러한 방식으로 API를 보호하여 인증되지 않은 사용자가 API를 사용하는 것을 방지합니다.
'언어는 과-학인가요? > 전반적인 web development (html css JS )' 카테고리의 다른 글
CDN 이란 무엇일까? CDN 의 장점과 미사용시 문제점 (0) | 2023.04.05 |
---|---|
HTML CSS - Class 와 id의 차이 (0) | 2022.11.15 |
HTML 에 CSS파일 연결하는법 (0) | 2022.11.15 |
HTML Article 과 Section의 차이 (0) | 2022.11.15 |
SERVER, CLIENT, and HTTP (0) | 2022.03.09 |