- 네트워크 - OSI 7 계층과 TCP/IP 5계층
- 네트워크 - HTTP
- 네트워크 - HTTP Version
- 네트워크 - HTTP 메시지 구조
- 네트워크 - HTTPS
- Post not found: computer-science/network/tcp
HTTP 메시지 구조
HyperText Transfer Protocol 의 약자로 HTML 문서를 전송하기 위해 만들어진 규약조건이다.
HTTP는 TCP/IP 기반으로 되어있다.
HTTP 통신 방식
HTTP는 기본적으로 요청/응답 구조
Client 요청 Message
Json 데이터
curl –http1.1 http://localhost:8888/greeting -v -H “Content-Type: application/json” -d ‘{“hello”:”json”}’
POST /greeting |
Multipart Form 데이터
curl –http1.1 http://localhost:8888/greeting -v -F ‘file=/Users/dongwoo-yang/Desktop/alliance-point.png’
POST /greeting |
Server 응답 message
200 OK |
HTTP Request 구조
- Start Line
- Header
- Body
Start Line
POST /greeting |
- Http Method
- request가 의도한 action을 정의하는 부분
- Http Method 종류는 GET , POST , PUT , DELETE , PATCH , OPTIONS 등등이 있다.
- Request Target
- Http 요청이 전송되는 주소(URI)
- Controller (Handler) 주소라고 생각하면 된다.
- HTTP Version
- HTTP Version을 명시한다.
- 1.1을 가장 많이 사용하고 1.0 , 1.1 , 2.0 , 3.0 이 있다.
Header
Key:Value 형태로 구성돼 있다.
Host: localhost:8888 |
- Content-Type
- 파일의 종류를 지정
- 보통은 MIME 타입(전자 메일을 위해 만들어진 식별자)이라는 식별자를 기술
- Content-Length
- 바디의 크기
- 압축이 이루어지는 경우는 압축 후의 크기
- Content-Encoding
- 압축이 이루어진 경우 압축 형식을 설명한다.
- User-Agent
- 클라이언트가 자신의 애플리케이션 이름을 넣는 곳
- 브라우저의 종류나 버전을 구분할 수 있다.
Body
헤더 끝에 빈 줄 을 넣으면 그 이후는 모두 바디가 된다.
Host: localhost:8888 |