일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- web
- SseEmitter
- javascript
- real time web
- Project
- hanghae99
- server send event
- DI
- jQuery
- Stream
- python
- session
- html
- WIL
- JWT
- Hibernate
- 생명주기 콜백
- jenkins
- spring
- cookie
- Spring Security
- google oauth
- programmers
- flask
- oauth
- Anolog
- 항해99
- Java
- bean
- JPA
Archives
- Today
- Total
끄적끄적 코딩일지
HTTP란 본문
HTTP 란?
- Hyper Text Transper Protocol의 약자
- 하이퍼텍스트 문서(HTML)을 교환하기 위해 만들어진 통신 규약
- 서버간 통신시 어떠한 형식으로 통신할지에 대해 정해둔 규약
- TCP/IP 기반의 통신 방식
HTTP 란?
- Hyper Text Transper Protocol의 약자
- 하이퍼텍스트 문서(HTML)을 교환하기 위해 만들어진 통신 규약
- 서버간 통신시 어떠한 형식으로 통신할지에 대해 정해둔 규약
- TCP/IP 기반의 통신 방식
HTTP 구조
Request / Response ( 요청 / 응답 )
- 보내는 쪽을 요청(Request), 요청을 받아 데이터를 보내는것을 응답 (Response) 라고 한다.
- 3-Way Handshake 방식을 쓴다.
- 3-Way Handshake : 양쪽 모두 데이터를 전송할 준비가 되었다는것을 보장하고 실제로 데이터 전달이 시작되기전에 송신쪽에서 수신측이 준비되었다는것을 알 수 있도록 한다.
- 실제 데이터가 전송되기 전 먼저 Client측에서 서버에 신호를 보내면 서버에서는 요청에 대해 응답할수 있다는 데이터를 보낸다. 그후 Client측에서 수신할 준비가 완료되었다는 데이터를 서버측에 보내면 실제 통신이 이루어 진다.
Request 구조
- Start Line (요청 라인)
- Http Method : 해당 요청이 의도한 액션을 정의하는 부분, GET,POST,DELETE 등의 정보가 들어가있다.
- Request Target : 해당 Request가 전송되는 목표 Url
- Http Version : 사용되는 Http 버전을 의미한다. 주로 1.1 버전이 쓰인다. (0.9 1.0 , 1.1 ,2, 3 버전이 있다.)
- Header
- 해당 요청에 대한 추가 정보(Meta Data)를 담고있는 부분이다.
- Key - Value 값으로 되어있다.
- Host : 요청을 보내는 목표의 주소, 즉 요청을 보네는 웹사이트의 기본 주소가 된다.
- User-Agent : 요청을 보내는 클라이언트의 대한 정보(ex. chrome, firefox, safari)
- Content-Type : 해당 요청이 보내는 메시지 body 타입
- 음악, 영상, 워드 파일등의 문서를 지칭하기 위해 MIME(Multipurpose Internet Mail Extensions) 를 쓴다.
- Content-Length : body 내용의 길이
- Authorization : 회원의 인증/인가를 처리하기 위해 로그인 토큰을 담는 곳
- CRLF
- Header 와 Body를 구분하기위한 의도적인 공백
- Body
- 요청에 대한 실질적인 내용정보를 담고 있다.
- 주로 POST 사용시 이용된다.
Response 구조
- Status Line (상태 라인)
- Http Version : 요청의 Http Version과 동일
- Status Code : 응답 메시지의 상태 코드
- 상태코드 종류
- 100번대 : 서버가 요청을 받았고 이를 처리하고 있는 상태 (Infomation)
- 200번대 : 서버가 응답을 성공적으로 받은 상태 (Success)
- 300번대 : 요청 완료를 위해 추가적인 조치가 필요한 상태(Redirection)
- 400번대 : 요청의 문법이 잘못되었거나 요청을 처리할 수 없는 상태 (Client Error)
- 500번대 : 유효한 요청에 대해 서버에서 처리를 할 수 없는 상태 (Server Error)
- Status Text : 응답 메시지의 상태를 간략하게 설명해주는 텍스트
- Header
- Request Header와 동일하게 응답에 대한 추가 정보가 담겨있는 부분
- Body
- 요청의 Body와 일반적으로 동일
- 설계에 따라 body가 있을수도 있고 없을수도 있음
- 일반적으로는 JSON, Html 같은 정보가 들어가 있음
HTTP 구조
Request / Response ( 요청 / 응답 )
- 보내는 쪽을 요청(Request), 요청을 받아 데이터를 보내는것을 응답 (Response) 라고 한다.
- 3-Way Handshake 방식을 쓴다.
- 3-Way Handshake : 양쪽 모두 데이터를 전송할 준비가 되었다는것을 보장하고 실제로 데이터 전달이 시작되기전에 송신쪽에서 수신측이 준비되었다는것을 알 수 있도록 한다.
- 실제 데이터가 전송되기 전 먼저 Client측에서 서버에 신호를 보내면 서버에서는 요청에 대해 응답할수 있다는 데이터를 보낸다. 그후 Client측에서 수신할 준비가 완료되었다는 데이터를 서버측에 보내면 실제 통신이 이루어 진다.
Request 구조
- Start Line (요청 라인)
- Http Method : 해당 요청이 의도한 액션을 정의하는 부분, GET,POST,DELETE 등의 정보가 들어가있다.
- Request Target : 해당 Request가 전송되는 목표 Url
- Http Version : 사용되는 Http 버전을 의미한다. 주로 1.1 버전이 쓰인다. (0.9 1.0 , 1.1 ,2, 3 버전이 있다.)
- Header
- 해당 요청에 대한 추가 정보(Meta Data)를 담고있는 부분이다.
- Key - Value 값으로 되어있다.
- Host : 요청을 보내는 목표의 주소, 즉 요청을 보네는 웹사이트의 기본 주소가 된다.
- User-Agent : 요청을 보내는 클라이언트의 대한 정보(ex. chrome, firefox, safari)
- Content-Type : 해당 요청이 보내는 메시지 body 타입
- 음악, 영상, 워드 파일등의 문서를 지칭하기 위해 MIME(Multipurpose Internet Mail Extensions) 를 쓴다.
- Content-Length : body 내용의 길이
- Authorization : 회원의 인증/인가를 처리하기 위해 로그인 토큰을 담는 곳
- CRLF
- Header 와 Body를 구분하기위한 의도적인 공백
- Body
- 요청에 대한 실질적인 내용정보를 담고 있다.
- 주로 POST 사용시 이용된다.
Response 구조
- Status Line (상태 라인)
- Http Version : 요청의 Http Version과 동일
- Status Code : 응답 메시지의 상태 코드
- 상태코드 종류
- 100번대 : 서버가 요청을 받았고 이를 처리하고 있는 상태 (Infomation)
- 200번대 : 서버가 응답을 성공적으로 받은 상태 (Success)
- 300번대 : 요청 완료를 위해 추가적인 조치가 필요한 상태(Redirection)
- 400번대 : 요청의 문법이 잘못되었거나 요청을 처리할 수 없는 상태 (Client Error)
- 500번대 : 유효한 요청에 대해 서버에서 처리를 할 수 없는 상태 (Server Error)
- Status Text : 응답 메시지의 상태를 간략하게 설명해주는 텍스트
- Header
- Request Header와 동일하게 응답에 대한 추가 정보가 담겨있는 부분
- Body
- 요청의 Body와 일반적으로 동일
- 설계에 따라 body가 있을수도 있고 없을수도 있음
- 일반적으로는 JSON, Html 같은 정보가 들어가 있음
'IT용어' 카테고리의 다른 글
Web에서 실시간 데이터를 표시하기 (0) | 2022.06.09 |
---|---|
SQL (0) | 2022.06.05 |
Digital 과 Anolog (0) | 2022.05.18 |
SSD와 HDD (0) | 2022.05.17 |
CPU에 대해서 알아보자 (0) | 2022.05.16 |