반응형
HTTP의 동작 원리 ->2020/03/01 - [Web] - HTTP (1)
1. HTTP 메시지 형식
- 요청을 보내고 응답을 받을 때 우리는 그 정보들을 패킷(Packet)이라는 작은 조각에 실어서 보내게 됩니다.
- 패킷은 크게 '헤더(Header)'와 '바디(Body)'로 되어 있는데, Header에는 보내는 사람의 주소, 받는 사람의 주소, 패킷의 생명 시간 (TTL, Time To Live) 등이 담겨 있고, Body에는 우리가 전하고자 하는 실제 내용이 들어 있습니다.
- 클라이언트가 서버에게 요청하는 메시지는 Request Message
- 서버가 클라이언트 요청에 응답하는 메시지는 Response Message
- 요청과 응답의 구조는 서로 닮았으며, 위의 그림과 같습니다.
① 시작 줄(start-line)에는 실행되어야 할 요청(Request), 또는 요청 수행에 대한 성공 또는 실패가 기록되어 있다.
이 줄은 항상 한 줄로 끝나게 된다.
② 옵션으로 HTTP 헤더 세트가 들어갑니다. 여기에는 요청에 대한 설명, 혹은 메시지 본문에 대한 설명이 들어있다.
③ 요청에 대한 모든 메타 정보가 전송되었음을 알리는 빈 줄(empty line)이 삽입 된다.
④ 요청과 관련된 내용(HTML 폼, 콘텐츠 등)이 옵션으로 들어가거나, 응답과 관련된 문서(document)가 들어간다.
본문의 존재 유무 및 크기는 첫 줄과 HTTP 헤더에 명시된다. - HTTP 메시지의 시작 줄과 HTTP 헤더를 묶어서 요청 헤드(head)라고 부르며,
이와 반대로 HTTP 메시지의 페이로드는 본문(body)이라고 합니다. - 위와 같은 정보를 확인은 크롬브라우저의 검사 기능을 통해 쉽게 확인할 수 있다.
아무 페이지에서 마우스 우클릭 -> 검사를 누르거나 F12를 누르면 크롬 개발자 도구를 열 수 있다.
우리는 상단의 탭 중에서 'Network'에 들어간다.
- General
- 요청 url 정보와 메소드, 상태 코드를 확인할 수 있습니다. - Response Headers
- 응답 헤더. 응답 온 패킷의 헤더를 확인할 수 있습니다.
- 서버의 종류, 연결 상태 등이 담겨 있습니다. - Request Headers
- 요청 헤더. 요청을 보낸 패킷의 헤더를 확인할 수 있습니다.
- 보낸 클라이언트의 종류, 요청한 파일의 종류 등을 알 수 있습니다.
2. HTTP Request Method
Request Method | Explanation |
Get (데이터 획득) | 웹 서버에 데이터 전송을 요청 |
Post (데이터 전송) | 클라이언트에서 웹 서버로 데이터를 전송 |
Put (데이터 갱신) | 클라이언트에서 웹 서버로 데이터를 전송 새로운 데이터 전송이 아닌 데이터 갱신이 목적 |
Delete (데이터 삭제) | 웹 서버의 데이터 삭제를 요청 |
Options | 웹서버에서 지원되는 메소드의 종류를 확인할 경우 사용. |
Head | 웹 서버에 헤더를 요청한다. 실제 문서(body)가 아닌 문서에 대한 정보(header)만을 요청한다. |
Trace | 원격지 서버에 루프백 메시지 호출하기 위해 테스트용으로 사용. |
Connect | 동적으로 터널 모드를 교환, 프락시 기능을 요청시 사용. |
3. HTTP Status (응답 코드)
응답 대역 | 응답코드 | 설명 |
정보 응답 | 100 ~ 199 | 정보성 상태 코드는 HTTP/1.1 에서 도입되어 비교적 새로운 것이며, 복잡함을 감수할 만큼 가치가 있는지에 대해 논란이 되고 있다. |
성공 응답 | 200 ~ 299 | 클라이언트가 요청을 보내면, 요청은 대게 성공함. 서버는 대응하는 성공을 의미하는 각각의 요청에 대응한다. |
200 : 요청은 정상이고, 본문은 요청된 리소스를 포함하고 있다. | ||
리다이렉션 메시지 | 300 ~ 399 | 클라이언트에 요청에 대해 적절한 다른 위치를 제공하거나, 대안의 응답을 제공한다. |
클라이언트 에러 응답 | 400 ~ 499 | 클라이언트의 잘못된 요청에 대한 대응 코드 |
403 : 요청이 서버에 의해 거부 되었음을 의미 | ||
404 : 요청한 URL을 찾을 수 없음을 의미 | ||
서버 에러 응답 | 500 ~ 599 | 올바른 클라이언트 요청에 대해 서버의 문제로 응답 할 수 없음을 의미 |
500 : 서버에 오류가 발생하여 응답 할 수 없음을 의미 |
출처
- https://cordelia273.space/11
- https://developer.mozilla.org/ko/docs/Web/HTTP/Messages
- https://velog.io/@honeysuckle/HTTP-%EC%83%81%ED%83%9C-%EC%BD%94%EB%93%9C-HTTP-status-code-
반응형
'Tool, 이론 및 기타 > 이론' 카테고리의 다른 글
Spring MVC vs Struts2 비교하기 (0) | 2022.04.21 |
---|---|
Struts2 Framework(스트럿츠2) 정리 (0) | 2022.04.21 |
[프로그래밍언어] 절차지향 vs 객체지향 vs 함수형 프로그래밍 비교 (4) | 2022.04.20 |
HTTP (1) (0) | 2020.03.01 |
웹 동작 원리 (0) | 2020.02.29 |