728x90
🌐 HTTP (HyperText Transfer Protocol)
HTTP(HyperText Transfer Protocl)는 인터넷 상에서 HTML과 이미지, 파일, 영상 등의 자료를 주고 받기 위해 설계된 서버-클라이언트 모델의 전송 프로토콜이다. TCP/IP 위에서 작동하고 있으며, 하나의 연결에는 하나의 요청을, 하나의 요청에는 하나의 응답을 주는 구조로 되어 있다.
🤜 HTTP Request (요청)
① start line
- HTTP 메소드 (
GET
,PUT
,POST
/HEAD
,OPTIONS
등) - Request Target: 주로 URL, 프로토콜, 포트, 도메인의 절대 경로로 나타낸다.
→ HTTP 메소드에 따라 포맷이 달라진다.- origin: 끝에 ?와 쿼리 문자열이 붙는 절대 경로 ⇒ GET, POST, HEAD, OPTIONS
ex.POST / HTTP 1.1
,GET /background.png HTTP/1.0
,HEAD /test.html?query=alibaba HTTP/1.1
- absolute: 완전한 URL 형식 ⇒ GET
- authority: 도메인 이름 및 옵션 포트(":"가 앞에 붙음) ⇒ HTTP 터널을 구축한 경우에만 CONNET와 사용 가능
- asterisk: "*"하나로 간단하게 서버 전체를 표현 ⇒ OPTIONS
- origin: 끝에 ?와 쿼리 문자열이 붙는 절대 경로 ⇒ GET, POST, HEAD, OPTIONS
- HTTP 버전
② Request Header
- Host: Client가 요청한 도메인의 정보
- User-Agent: 사용자의 Web Browser 종류 및 버전 정보
- Accept: Web Server로부터 수신되는 데이터 중 Web Browser가 처리할 수 있는 데이터 형식
- Accept-Language
- Accept-Encoding
- Cookie
- Content-Type: Request Message Body의 종류
- Content-Length: Reqeust Message Body의 길이
③ 공백
Request Header와 Request Body를 구분짓기 위한 공백이 포함된다.
④ Request Body
Header에서 지정한 Content-Type과 Content-Length에 맞는 실제 Entity가 포함된다.
🤛 HTTP Response
① status line
- HTTP 버전
- Status Code
- 1XX (정보 전송 임시 응답)
- 2XX (성공)
- 200: 요청이 성공적으로 수행되었음
- 201: Created - PUT 메소드에 의해 원격지 서버에 파일이 생성되었음
- 3XX (리다이렉션)
- 4XX (클라이언트 요청 에러)
- 401: Unathorized - 인증이 필요한 페이지 요청
- 404: Not Found - 요청한 페이지가 없음
- 405: Method not allowed - 허용되지 않은 http method 사용
- 5XX (서버 에러)
- 500: Internal Server Error - 내부 서버 오류
- 502: Bad Gateway - 프록시 또는 게이트 웨이가 Upstream Server로부터 잘못된 응답을 받음
② Response Header
- Date
- Server
- Last-Modified
- Set-Cookie: 쿠키 설정
- ETag: Entity Tag
- Content-Type
- Content-Length
③ 공백
Request Header와 Request Body를 구분짓기 위한 공백이 포함된다.
④ Response Body
Header에서 지정한 Content-Type과 Content-Length에 맞는 실제 Entity가 포함된다. ⇒ 실제 응답받은 메시지(데이터)
📜 참고
https://developer.mozilla.org/ko/docs/Web/HTTP/Messages
(+ 읽어볼거리 HTTP Smuggling)
https://portswigger.net/web-security/request-smuggling
(+ HTTP Response Status Code)
https://documentation.help/DogeTool-HTTP-Requests-vt/http_request.htm
SMALL
'Network > Network' 카테고리의 다른 글
네트워크 장비: 허브, 스위치, 라우터 (0) | 2022.04.29 |
---|---|
네트워크 주소: IP Address - (IPv4, IPv6) / MAC Address (0) | 2022.04.29 |
네트워크 메세지 전송 방식: 유니캐스트, 멀티캐스트, 브로드캐스트 (0) | 2022.04.29 |
네트워크 통신 프로토콜 - TCP, UDP, IRC (0) | 2022.04.08 |
LAN(근거리통신망)과 Ethernet(이더넷) (0) | 2022.04.07 |