1.HTTP(Hyper Text Transfer Protocol)란
- 하이퍼텍스트(HTML)를 교환하기 위해 만들어진 통신규약
- 웹상에서 네트워크 통신을 원활하게 하기 위해 서로 미리 규정해놓은 통신 구조이다.
- HTTP는 TCP/IP 구조로 되어있다.
2. HTTP에 대해서
2.1 HTTP 통신 방식
- 기본적으로는 요청/응답 구조로 되어있다.
- Client가 Server로 HTTP 요청을 보내면 Server는 Client에게 응답하는 방식
- HTTP는 Stateless 이다.
- Stateless는 상태를 저장하지 않는 뜻으로 해당 요청에 대한 응답만 존재할뿐 이전 요청에 대한 정보를 저장하고 다른 요청과 연결되지 않는다.
- 그래서 여러 요청과 응답에 대해 진행과정이나 데이터가 필요할 때는 쿠키 or세션을 사용한다.
2.2 HTTP 요청 구조
- 요청은 크게 start line, headers, body로 구성되어있다.
2.2.1 start line
- HTTP의 첫 라인으로 3 부분으로 되어있다.
- 예시) GET/user/logout HTTP/1.1 (메서드/URI/HTTP버전)
2.2.2 Headers
- 해당 요청에 대한 추가 정보를 담고 있는 부분으로 요청의 Length 등의 정보가 담겨있음
- KEY:VALUE값으로 되어있다
- Host: 요청이 전송되는 target의 URL
- User-Agent: 요청을 보내는 클라이언트의 정보 (웹브라우저에 대한 정보)
- Accept: 해당 요청이 받을 수 있는 응답 타입
- Connection: 해당 요청이 끝난 후에 클라이언트와 서버가 계속해서 네트워크 커넥션을 유지할지 말지
- Content-Type: 해당 요청이 보내는 메시지 boyd의 타입. (json이 여기에 해당)
- Content-Length: 메세지 body의 길이
2.2.3 Body
- 해당 요청의 실제 메세지 내용이다.
- body가 없는 요청도 많다 예를 들어 GET 요청은 대부분 body가 없다.
2.3 HTTP 응답 구조
응답도 요청과 마찬가지로 3 부분으로 구성되어 있다. status line, header, body
2.3.1 Status Line
- HTTP 응답의 첫 라인으로 3 부분으로 되어있다.
- 예시) HTTP/1.1 404 Not Found ( HTTP버전 / Status code-응답 상태 / Status text-응답 상태 설명)
2.3.2 Headers
- 요청의 Headers와 동일하다.
- 다만 응답에서만 사용하는 Header정보들만 들어있다.
2.3.3 Body
- 요청의 Body와 동일하다
- 요청과 마찬가지로 응답의 Body는 비어있을 수 있다.(데이터 전송을 할 필요가 없는 경우)
3.HTTP Status Code
200 OK
- 문제없이 실행된 경우
301 Moved Permanently
- 해당 URI가 다른 주소로 바뀐 경우
400 Bad Request
- 해당 요청이 잘못 보내졌을 경우
- 주로 요청에 값들이 잘못 보내진 경우 ex) Age에 int값이 아닌 text가 주어진 경우
401 Unauthorized
- User가 해당 요청에 인증이 안 된 경우 ex) 로그인, 회원가입
403 Forbidden
- User가 해당 요청에 권한이 없는 경우 ex) 과금 유저에게만 렌딩 할 경우
404 Not Found
- 요청된 URI가 존재하지 않는 경우
500 Internal Server Error
- 서버에서 에러 가난 경우
'개인공부 > [Web]' 카테고리의 다른 글
웹 URL입력시 네트워크 과정 (0) | 2020.10.15 |
---|