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 특징
- HTTP는 Client-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의 답변.
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 |