우당탕탕 개발자 되기
HTTP 본문
HTTP(HyperText Transfer Protocol)
역사
- HTTP/0.9(91년) : GET 메서드만 지원, HTTP 헤더X
- HTTP/1.0(96년) : 메서드, 헤더 추가
- HTTP/1.1(97년) : 최근 가장 많이 사용
- HTTP/2 (15년) : 성능 개선
- HTTP/3 진행중 : TCP 대신 UDP 로 대체
특징
- 클라이언트 서버구조
- Request Response 구조
- 클라이언트가 서버에 Request
- 서버가 클라이언트에 Response
- 무상태 프로토콜
- 서버가 클라이언트의 정보를 유지x
- 장점 : 서버 확장성 높음(Scale Out)
- 단점 : 클라이언트가 전송하는 데이터 용량이 늘어남
- 모든것을 무상태로 설계할 수 는 없지만 상태유지를 최소한으로만 사용해야한다.
- 비 연결성
- 서버 자원을 매우 효율족으로 사용할수 있다.
- 매번 TCP/IP 연결을 새로 맺어야 하기때문에 시간이 추가된다.
- 현재 HTTP 지속 연결(Persistent Connections)로 문제 해결
HTTP 메시지 구조
HTTP-message = start-line
*( header- field CRLF )
CRLF
[message-body]
시작 라인(요청 메시지)
- start-line = request-line
- request-line = method request-target HTTP-version CRLF
- HTTP 메서드(서버가 수행해야 할 동작 지정)
-GET : 리소스 조회
-POST : 요청 내역 처리
- 요청 대상(/search?q=hello&hl-ko)
- absolute-path[?query](절대경로[?쿼리])
- 절대경로 : "/"로 시작 경로
시작라인(응답 메시지)
- start-line : status-line
- status-line : HTTP-version status-code reason-phrase CRLF
- HTTP status code
- 200 : 성공, 400: 클라이언트 요청 오류, 500 : 서버 내부 오류
- reason-phrase : 이해할수 있도록 짧은 상태 코드 설명
출처) https://www.inflearn.com/course/http-%EC%9B%B9-%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC/dashboard
모든 개발자를 위한 HTTP 웹 기본 지식 - 인프런 | 강의
실무에 꼭 필요한 HTTP 핵심 기능과 올바른 HTTP API 설계 방법을 학습합니다., 웹 기술을 사용하는 개발자라면 누구나 OK!꼭 필요한 HTTP의 핵심을 알려드립니다. 📣 확인해주세요!본 강의는 자바 스
www.inflearn.com