여태까지 저의 글들을 보면 많이 보인 단어가 있을 겁니다.
그중 하나가 바로 HTTP인데요. 오늘은 HTTP가 도대체 뭔지에 대해 설명드리겠습니다.
Hypertext Transfer Protocol
HTTP는 사용자의 웹브라우저와 웹사이트를 가지고 있는 서버와의 소통을 위해 존재합니다.
그런 HTTP는 대표적으로 두 가지의 종류가 있는데 첫 번째는 Request 두 번째는 Response입니다.
Request(요청)에 부터 설명드리겠습니다.
우리가 웹사이트에서 특정 링크나 버튼을 눌렀을 때 기본적으로 우리의 브라우저는 다른 화면을 보여주거나 우리가 의도한 결과를 보여 줍니다.
여기서 Request는 바로 링크를 누르거나 버튼을 눌렀을 때 생성됩니다.
그럼 그 Request는 어떻게 구성 돼있을까요?
HTTP Version Type | HTTP 버젼에 관한 정보입니다. |
URL | Request를 웹서버 어디에서 처리해야 하는지 알려 줍니다. |
HTTP Method | Request의 행동에 대한 정보를 표시합니다. |
HTTP Request Headers | Request의 관한 핵심 정보를 알려줍니다. |
Optional HTTP Body | 이외에 Request 처리를 위한 추가 정보가 들어있습니다. |
조금만 더 추가해서 설명드리자면
URL: 표의 설명대로 웹서버가 어디서 요청을 처리해야 하는지 알려주는 지도와 같은 겁니다. 아래의 예시를 보시죠.
http://something.com/posts?id=1
// 위 url이 전달 된다 했을 때 웹서버는 post라는 페키지에서 처리를 해야 한다는걸 알게 됩니다.
Method: 대표적으로 GET과 POST가 나뉘는데 위의 예를 경우로 말씀드리면 GET의 경우 id 1번을 가져와달라는 요청이 되는 겁니다. 그러면 POST의 경우는 id를 1번으로 하고 Optional HTTP Body에 해당 정보가 들어 있습니다.
HTTP Request Headers: 핵심 정보들이 요약되어 있다고 생각하면 됩니다. 위의 표에 있는 정보가 포함되어 있습니다. Optional HTTP Body 재외 하고요. 웹서버에서는 여러 가지 요청이 동시에 올 수 있기에 요청을 구분하는 용도로 쓰인다 정도로 알고 계시면 됩니다.
그럼 이제 Request를 받았으니 그에 맡는 Response(응답)를 해야겠죠?
Response의 경우 아래의 내용들로 구성돼 있습니다.
HTTP Status code | 응답의 상태를 나타냅니다. |
HTTP Response Headers | HTTP Response에 대한 핵심 정보가 담겨있습니다. |
Optional HTTP Body | HTTP Request에 해당하는 HTML 정보가 담겨있습니다. |
HTTP Response Headers의 경우 위의 Request Headers와 유사합니다. 그리고 Optional HTTP Body의 경우 정말 말 그대로 우리가 Request를 통해 요청한 정보가 HTML형태로 담겨있고 Status Code의 상태에 따라 안 담겨있기도 합니다.
그럼 HTTP Status Code는 정확히 뭘까요?
1XX | Informational 아직 처리중 이라는 뜻입니다. |
2XX | Success 응답에 성공했다는 뜻입니다. |
3XX | Redirectional 다른 페이지로 옮겨집니다. |
4XX | Client Error 해당 URL에 대한 요청이 잘못됐다. 즉, 우리탓입니다. |
5XX | Server Error 해당 요청을 서버 이상으로 처리 불가하다는 뜻입니다. 즉, 웹사이트의 잘못이라는 겁니다. |
간단하죠?
이 Response의 정보를 기반으로 우리의 웹브라우저가 새로운 페이지를 우리에게 보여줍니다.
위 내용들을 간단히 요약하자면 HTTP는 우리가 웹사이트를 사용하는 데에 있어 핵심적인 소통 수단이라는 점입니다. 그 소통은 요청과 응답이 있고 요청을 하기 위해 위에 언급한 방식으로 요청하고 그에 맞춘 응답은 우리의 웹브라우저 통해 표시가 됩니다.
그런데 여기에서 의문점이 하나 생길 수 있습니다. 핵심적인 소통수단이면 모든 요청을 다 이걸로 해야 하는데 그럼 만약 다른 사람이 나의 HTTP Request를 채가면 어떻게 하지? 그래서 우리의 HTTP요청은 현재 HTTPS로 바뀌어 있고 많은 웹브라우저는 이 HTTPS의 Request와 Response가 아니라면 소통하지 않거나 사용자가 이용하는데 재약을 겁니다.
그러면 도대체 이 HTTPS는 뭘까요?
저번 글에서 너무 차분하게 설명한 거 같지 않아 이번에는 차분하게 한번 설명해 봤습니다.
참고자료
* 항상 정확한 정보를 드리고 싶지만 실수가 있을 수도 있습니다!
* 실수를 찾게 되거나 질문이 있으시면 댓글 달아주세요!!
'개발일반 > 도대체' 카테고리의 다른 글
도대체 OSI Model은 뭘까요? : 7 Layers (0) | 2023.02.20 |
---|---|
도대체 HTTPS는 뭘까요? (0) | 2023.02.17 |
도대체 Cookies(쿠키)는 뭘까요? (0) | 2023.02.15 |
도대체 API는 뭘까요? (0) | 2023.02.14 |
도대체 REST API는 뭘까요? (0) | 2023.02.13 |