Thread - Network

[Network] HTTP와 GET / POST 방식

Joo.v7 2024. 10. 5. 14:08

1. HTTP

  • HTTP
  • HTTP 특징

2. HTTP Message

  • HTTP Message

3. Request(요청)

  • Start-line
  • Request Header
  • Request Body

4. Response(응답)

  • Status line
  • Response Header
  • Response Body

5. GET / POST 방식

  • GET
  • POST

1. HTTP

HTTP(HyperText Transfer Protocol)

  • HTML과 같은 하이퍼 미디어 문서를 전송하기 위한 Application layer Protocol.
  • HyperText를 전송하기 위한 Protocol(통신 규약).
    • HyperText: 텍스트 간 이동할 때, Sequential Access가 초월적 접근 방식을 따르는 Text.
    • Transfer Protocol: 통신 장비 간 데이터 교환 방식에 대해 합의한 내용.
    • HTML(HyperText Markup Language): 태그를 이용해 정보와 문서를 구조적으로 표현하는 웹 문서 작성 기술.

HTTP 특징

  • HTTPClient-Server Protocol: Client는 request하고, 이것에 Server가 response 하는 distributed computing.
  • HTTP는 상태가 없고, 세션이 있다.
    • Server는 Client가 request를 보낼 때마다, 해당 request에 대한 정보만을 바탕으로 응답을 처리함. -> 이전 정보 기억 X.
    • Session: Client와 Server 간의 특정 상호작용 기간 동안 유지되는 상태 정보의 집합.
    • ex) 'www.example.com/page1'과 'www.example.com/page2'의 요청은 서로 연관성이 없고, 독립적이다.
  • HTTP는 확장 가능하다.
  • HTTP는 TCP 위에서 동작한다.


2024.09.30 - [NHN Java 백엔드 8기/Thread - Network] - [Network] Java Socket

 

[Network] Java Socket

1. SocketSocketIP 주소 (Internet Protocol Address)포트(Port)IP 주소와 Port의 결합2. TCPTCP (Transmission Control  Protocol)특징TCP 헤더 구조TCP Connection/Termination3. Observer Pattern 실습: Java Socket 1. Socket Socket 통신: 네

lightningtech.tistory.com

 


2. HTTP Message

HTTP Message

  • Server - Client간 데이터가 교환되는 방식.
  • Request: Client -> Server로 전달해서 Server의 action을 유도.
  • Response: Client의 request에 대한 Server의 답변.

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

 


3. Request(요청)

Start line

  • HTTP method + URI + HTTP version
    • HTTP method: 서버가 수행해야 할 동작 - GET, POST, PUT, HEAD, OPTIONS...
    • URI: URL, protocol, port, domain의 절대 경로.
      ex)
      POST / HTTP 1.1
      GET / background.png HTTP/1.0
      HEAD /test.html?query=alibaba HTTP/1.1

Request Header

  • 대소문자를 구분하지 않는 이름, 콜론(:), 으로 구성.

Request Body

  • request의 마지막 부분에 들어가며, 모든 request에 request body가 들어가지는 않는다.
  • 보통 POST request일 경우 body에 data를 넣어서 전송한다.

4. Response(응답)

Status line

  • Protocol version + Status code + Status text
    • Status code: request의 성공 여부를 나타내는 code. ex) 200, 404, 302 ...
    • Status text: 사람이 HTTP 메시지를 이해하는데 도움을 주는 정보 제공 목적의 text.
      ex)
      HTTP/1.1 200 OK
      HTTP/1.1 404 Not Found

Response Header

  • Status line에 들어가지 못했던 Server에 대한 추가 정보를 제공.

Response Body

  • response의 마지막 부분에 들어가며, 모든 response에 response body가 들어가지는 않는다.

 


5. GET 방식

GET

  • URL의 '?' 뒤에 파라미터(보낼 정보)를 붙여서 전송.
  • 브라우저가 자동으로 캐싱함.
    ex) http://lightningtech.tistory.com/manage?type=post&returnURL=https~

POST

  • HTTP Request Body에 data를 추가하여 전송
특징 GET POST
데이터 전달 URL 뒤에 파라미터를 추가하여 전달 HTTP 요청 본문(body)에 데이터를 추가하여 전달
데이터 길이 URL 길이에 제한이 있음 (2,048자 이하) HTTP 요청 본문(body)의 크기에 제한이 있음 (2GB 이하)
보안성 URL에 데이터가 노출되기 때문에 보안성이 낮음 HTTP 요청 본문(body)에 데이터가 포함되어 전달되므로 보안성이 높음
캐싱 브라우저에서 자동으로 캐싱됨 브라우저에서 캐싱되지 않음
사용 상황 데이터 조회, 사용자가 입력한 정보가 노출되어도 괜찮을 때 데이터 추가, 수정, 삭제, 사용자가 입력한 정보가 노출되지 않아야 할 때 (로그인 등)

 


 

참고

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

 

HTTP 메시지 - HTTP | MDN

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

developer.mozilla.org

https://mundol-colynn.tistory.com/141

 

[Web] GET방식과 POST방식의 특징 및 차이점

GET방식과 vs POST방식 HTTP는 클라이언트와 서버 간 통신에 사용되는 프로토콜입니다. HTTP 요청 메소드 중 GET 방식과 POST 방식은 웹 개발에서 가장 많이 사용되는 두 가지 방식입니다. GET 방식과 POST

mundol-colynn.tistory.com

 

'Thread - Network' 카테고리의 다른 글

[Network] Java Socket  (0) 2024.09.30
[Thread] Java Thread  (0) 2024.09.11