Network/Network

HTTP Request 와 Response

728x90

🌐 HTTP (HyperText Transfer Protocol)


HTTP(HyperText Transfer Protocl)는 인터넷 상에서 HTML과 이미지, 파일, 영상 등의 자료를 주고 받기 위해 설계된 서버-클라이언트 모델의 전송 프로토콜이다. TCP/IP 위에서 작동하고 있으며, 하나의 연결에는 하나의 요청을, 하나의 요청에는 하나의 응답을 주는 구조로 되어 있다.

HTTP Request - Response 내용

🤜 HTTP Request (요청)

HTTP Request Message Format

① 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
  • HTTP 버전

② Request Header

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

HTTP Response Message Format

① 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://cotak.tistory.com/59

 

[네트워크] HTTP의 이해2: HTTP Request-Response Messages

HTTP 요청-응답 메시지 브라우저에 URL을 입력하면 HTTP 표준에 따라 URL을 요청 메시지로 변환하고 TCP/IP를 사용하여 인터넷을 통해 요청을 보낸다. 웹 서버는 요청을 수신하고 클라이언트가 요청한

cotak.tistory.com

https://developer.mozilla.org/ko/docs/Web/HTTP/Messages

 

HTTP 메시지 - HTTP | MDN

HTTP 메시지는 서버와 클라이언트 간에 데이터가 교환되는 방식입니다. 메시지 타입은 두 가지가 있습니다. 요청(request)은 클라이언트가 서버로 전달해서 서버의 액션이 일어나게끔 하는 메시지

developer.mozilla.org

(+ 읽어볼거리 HTTP Smuggling)
https://portswigger.net/web-security/request-smuggling

 

What is HTTP request smuggling? Tutorial & Examples | Web Security Academy

In this section, we'll explain HTTP request smuggling attacks and describe how common request smuggling vulnerabilities can arise. Labs If you're already ...

portswigger.net

(+ HTTP Response Status Code)

https://documentation.help/DogeTool-HTTP-Requests-vt/http_request.htm

 

HTTP Request Message - HTTP Requests Documentation

* Nguồn bài viết tại đây. * Tham khảo thêm tài liệu tiếng Anh rất chi tiết tại đây. I) HTTP REQUEST MESSAGE Khi Client gửi một yêu cầu lên sever như tải một trang web nào đó, hay đăng nhập vào trang nào đó t

documentation.help

 

SMALL