일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 부족한 금액 계산하기
- 리액트코드정렬
- max_allowed_packet
- AWS
- 리액트
- s3확장자
- 제일 작은 수 제거하기
- react
- 프리티어
- .env
- utf8mb4
- next #middleware
- EC2
- interactive_timeout
- prettier
- reacts3
- elasticIP
- vscode
- useReducer
- express
- Node
- 프로그래머스
- 자동완성방지
- 코딩테스트
- MySQL
- 커밋 한번에
- axios
- 코드정렬
- 자연수 뒤집어 배열로 만들기
- dotenv
- Today
- Total
Sungtt
HTTP 메시지, 요청과 응답 본문
HTTP 메시지, 요청과 응답
클라이언트와 서버 간에 데이터를 주고받기 위해서는 요청과 응답하는 HTTP 메시지가 필요하다.
요청(Response)은 브라우저가 서버로 전달하는것이고
응답(Request)은 브라우저가 보낸 요청에 대한 응답이다.
메시지의 시작 줄과 HTTP 헤더를 묶어서 요청 헤드(Head)라고 부르며, 메시지의 페이로드는 본문(Body)이라고 한다.
요청 (Response)
서버에게서 응답을 받기위해 클라이언트가 전송하는 메시지.
시작줄
시작줄은 다음과 같이 세 가지 요소로 이루어져 있다.
1. HTTP 메서드 : GET, PUT, POST, DELETE, PATCH 등...
2. 요청 타겟 : URL, 프로토콜, 포트, 도메인의 절대 경로 등...
3. HTTP 버전 : 응답 메시지에 써야 할 HTTP 버전을 알려주는 역할
요청 헤드(Head)
요청에 들어가는 HTTP 헤더는 기본 구조를 따른다.
대소문자 구분없는 문자열 다음에 콜론이 붙으며 그 뒤에 값은 헤더에 따라 달라진다.
다음과 같이 다양한 종류의 요청 헤더가 있다.
1. General 헤더 : via와 같은 헤더는 메시지 전체에 적용 된다.
2. Request 헤더 : User-Agent, Accept-Type과 같은 헤더는 요청의 내용을 구체화 시키고, 제약을 가하기도 한다.
3. Entity 헤더 : Content-Length와 같은 헤더는 요청 본문에 적용된다. 요청 내 본문이 없는 경우 Entity 헤더는 전송되지 않는다.
본문 (Body)
주로 본문이 들어가는 POST 요청에 마지막 부분에 들어간다.
GET, HEAD, DELETE 등 리소스를 가져오는 요청은 보통 본문이 필요 없다.
응답 (Request)
시작줄
응답의 시작 줄은 상태 줄(status line)이라고 부르며, 다음과 같은 정보를 가지고 있다.
1. 프로토콜 버전 : 보통은 HTTP/1.1
2. 상태 코드 : 200, 303, 404 등 요청에 대한 결과 여부
3. 상태 텍스트 : 상태 코드에 대한 설명
//상태줄은 일반적으로 아래와 같이 생겼다.
HTTP/1.1 404 Not Found.
헤더
요청 구조와 동일한 구조를 따른다.
1. General 헤더 : via와 같은 헤더는 메시지에 전체 적용된다.
2. Response 헤더 : Vary와 Accept-Ranges와 같은 헤더는 상태줄에 미처 들어가지 못했던 서버 추가 정보를 제공한다.
3. Entity 헤더 : 요청 본문에 적용된다.
본문
응답의 마지막 부분에 들어간다. 모든 응답에 본문이 들어가지는 않으며
201, 204과 같은 상태 코드를 가진 응답에는 보통 본문이 없다.
'CS' 카테고리의 다른 글
Certbot SSL인증서 갱신하기 (0) | 2023.02.07 |
---|---|
REST, Restful API (1) | 2023.01.23 |
GraphQL과 REST api의 차이점 (0) | 2023.01.23 |