일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- 화살표함수
- 4주차
- 버킷리스트
- chapter2
- CSS
- javascript
- 5주차
- Til
- 숙제
- HTML
- CS
- react
- JS
- 1주차
- OperatingSystem
- 완강
- 알고리즘
- DOM
- 쿠키
- 자바스크립트는왜그모양일까
- Todo
- javaScript기초
- computerscience
- 스터디
- 3주차
- 항해99
- 실전프로젝트
- OS
- WIL
- 생각정리
- Today
- Total
개발캡슐
[CS] HTTP 본문
HTTP
HTTP ?
HTTP(Hypertext Transfer Protocol)의 약자.
HTML문서와 같은 리소스(자원)들을 가져올 수 있도록 해주는 프로토콜이지.
웹에서 이루어지는 모든 데이터 교환의 기초라고 할 수 있어.
Protocol(프로토콜)은 "상호 간에 정의한 규칙"을 의미해.
특정 기기 간에 데이터를 주고받기 위해 정의됐어.
즉, 나는 이렇게 줄 테니 넌 이렇게 받고 난 네가 준 거 그렇게 받을게라고 정한거야.
웹에서는 클라이언트라고 부르는 브라우저와 서버 간에 데이터를 주고받기 위한 방식으로
HTTP 프로토콜을 사용하고 있어.
에러를 해결하는데도 HTTP지식이 중요해.
데이터를 주고 받을 때, 흔히 발생하는 CORS, CORB같은 에러들인데,
HTTP만 잘 알아도 쉽게 해결할 수 있어.
(프론트엔드 개발자라면 필수지식이 됐지!)
하나의 완전한 문서는 "텍스트, 레이아웃 설명, 이미지, 비디오, 스크립트 등 불러온(fetched)하위 문서들로 재구성 돼."
(아래 사진 참고)
클라이언트(Client)와 서버(Server)들은 개별적인 메세지 교환에 의해 통신해.
보통 브라우저인 클라이언트에 의한 요청으로 전송되는 메세지를 요청(Request)라고 하고
, 그에 대해 서버에서 응답으로 전송되는 메세지를 응답(Response)라고 불러.
그리고 이러한 방식을 HTTP 메세지라고 하지.
HTTP 메세지(HTTP messages)
HTTP 메세지는 클라이언트와 서버 간에 데이터가 교환되는 방식이야.
그 유형은 두 가지가 있어. 요청(Request)와 응답(response)라고 하지.
요청(Requests)
요청은 클라이언트가 서버로 전달해서 서버의 액션이 일어나게끔 하는 메세지야.
응답(Responses)
응답은 클라이언트의 요청에 대한 서버의 답변이지.
HTTP 메세지(HTTP message)의 구성
- HTTP 메세지는 몇 줄의 텍스트 정보로 구성됐어.
- 개발자는 이런 메세지를 직접 작성할 필요는 거의 없고.
- 구성파일, API, 기타 인터페이스에서 HTTP 메세지를 자동으로 완성하지.
그리고 요청과 응답을 이해하기 위해서는 먼저 클라이언트(Client)와 서버(Server)를 이해해야 해.
클라이언트(Client)
- 클라이언트란 요청을 보내는 쪽을 의미해.
일반적으로 웹 관점에서는 브라우저라고 하지.
브라우저는 항상 요청을 보내는 개체야. 결코 서버가 될 수 없지.
서버(Server)
- 서버는 요청을 받는 쪽을 의미해.
일반적으로 데이터를 보내주는 원격지의 컴퓨터를 의미해.
HTTP 메세지의 구조 - 요청과 응답의 구조
HTTP 요청과 응답의 구조는 서로 닮았어.
1. start line(시작 줄)
- 시작 줄(start-line)에는 실행되어야 할 요청, 또는 요청 수행에 대한 성공 또는 실패가 기록되어 있어.
- 항상 첫 번째 줄에 위치하고 한 줄로 끝나.
- 응답에서는 status line이라고 불러.
2. HTTP headers
- 옵션으로 HTTP 헤더 세트가 들어가.
- 요청에 대해 설명거나, 메세지에 포함된 본문을 설명하는 헤더의 집합이야.
- HTTP 메세지의 시작줄(start line)과 HTTP 헤더를 묶어서 요청이나 응답 헤드(head)라고 불러.
- 반대로 , HTTP 메세지의 페이로드(payload)는 본문(body)라고 하지.
3. blank line(빈 줄)
- 요청에 대한 모든 메타 정보가 전송되었음을 알리는 빈 줄(blank line)이 삽입돼.
- 헤더와 본문을 구분하는 빈 줄이 있어. 그 줄을 말해.
4. body
- 요청과 관련된 데이터, 내용(HTML 폼 콘텐츠 등)이 옵션으로 들어가거나
- 응답과 관련된 데이터 또는 문서(document)가 들어가.
- 본문의 존재 유무 및 크기는 첫 줄과 HTTP 헤더에 명시되지.
- 요청과 응답의 유형에 따라 선택적으로 사용해.
-참고자료-
'CS' 카테고리의 다른 글
[CS] -[Network, 보안] 쿠키(cookie)의 옵션 설정 (0) | 2023.04.04 |
---|---|
[CSS] Position (0) | 2023.03.30 |
[CS] - [OS] - 캐시(Cache) (0) | 2023.03.29 |
[CS] 프레임워크와 라이브러리, 그 차이점 (0) | 2023.03.29 |
[CS]웹페이지가 브라우저에 렌더링되는 과정 (0) | 2023.03.27 |