Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 항해99
- 스파르타코딩클럽
- emqx
- MYSQL
- Spring
- java
- 남궁성과 끝까지 간다
- 데이터베이스
- DB
- JWT
- 웹개발
- CentOS
- 개인프로젝트
- docker
- WEB SOCKET
- 카프카
- EC2
- 스웨거
- @jsonproperty
- JavaScript
- 쇼트유알엘
- 패스트캠퍼스
- Kafka
- 시큐리티
- 생성자 주입
- 프로그래머스
- 스프링의 정석
- visualvm
- Spring Security
- AWS
Archives
- Today
- Total
Nellie's Blog
HTTP Request/Response 구조 본문
728x90
HTTP Request
HTTP Request Message는 공백(blank line)을 제외하고 3가지 부분으로 나누어진다.
- Start Line
- Headers
- Body
Start Line
HTTP Request Message의 시작 라인
HTTP request의 start line 3가지 부분으로 구성
- HTTP method
- Request target
- HTTP version
GET /test.html HTTP/1.1
[HTTP Method] [Request target] [HTTP version]
- HTTP method는 요청의 의도를 담고 있는 GET, POST, PUT, DELETE 등이 있다.
- Request target은 HTTP Request가 전송되는 목표 주소이다.
- HTTP version은 version에 따라 Request 메시지 구조나 데이터가 다를 수 있어서 version을 명시한다.
Header
해당 request에 대한 추가 정보를 담고 있는 부분
headers도 크게 3가지 부분으로 나뉨(general headers, request headers, entity headers)
Host: google.com
Accept: text/html
Accept-Encoding: gzip, deflate
Connection: keep-alive
...
- Host : 요청하려는 서버 호스트 이름과 포트번호
- User-agent : 클라이언트 프로그램 정보. 이 정보를 통해 서버는 클라이언트 프로그램(브라우저)에 맞는 최적의 데이터를 보내줄 수 있다.
- Referer : 바로 직전에 머물렀던 웹 링크 주소
- Accept : 클라이언트가 처리 가능한 미디어 타입 종류 나열
- If-Modified-Since : 여기에 쓰여진 시간 이후로 변경된 리소스 취득. 페이지가 수정되었으면 최신 페이지로 교체한다.
- Authorization : 인증 토큰을 서버로 보낼 때 쓰이는 Header
- Origin : 서버로 Post 요청을 보낼 때 요청이 어느 주소에 시작되었는지 나타내는 값. 이 값으로 요청을 보낸 주소와 받는 주소가 다르면 CORS(Cross-Origin Resource Sharing) 에러가 발생한다.
- Cookie : 쿠키 값이 key-value로 표현된다.
Body
HTTP Request가 전송하는 데이터를 담고 있는 부분
전송하는 데이터가 없다면 body 부분은 비어있고, 보통 post 요청일 경우, HTML 폼 데이터 등이 포함되어 있다.
POST /test HTTP/1.1
Accept: application/json
Accept-Encoding: gzip, deflate
Connection: keep-alive
Content-Length: 83
Content-Type: application/json
Host: google.com
User-Agent: HTTPie/0.9.3
{
"test_id": "tmp_1234567",
"order_id": "8237352"
}
HTTP Response
Http Request와 비슷하다.
참고
https://gmlwjd9405.github.io/2019/01/28/http-header-types.html