프로그래밍/HTTP

HTTP 기본

Baesj 2021. 8. 10. 16:56

모든 개발자를 위한 HTTP 웹 기본 지식 강의를 듣고 간단하게 정리한 내용 및 추가로 알게 된 내용입니다.

 

 

HTTP(HyperText Transfer Protocol)

HTTP 메시지에는 HTML, TEXT, 이미지, 음성, 영상, 파일 , JSON, XML 등 거의 모든 형태의 데이터 전송이 가능하다.

 

특징

클라이언트 서버 구조

    - 클라이언트는 서버에 요청을 보내고, 서버는 요청에 대한 결과를 응답

무상태 프로토콜(Stateless)

    - 서버가 클라이언트의 상태를 보존하지 않는다

    - 스케일 아웃이 가능하다

    - 아무 서버나 호출해도 된다

비 연결성

    - 클라이언트랑 요청 응답이 끝나면 연결을 끊는다

    - 최소한의 자원 사용

    - TCP/IP 연결을 새로 맺어야 하는 단점이 있음

 

HTTP 메시지 구조

start-line 시작라인

    요청 메시지

        method SP(공백) request-target SP HTTP-version CRLF(엔터)

        예) GET /mycomputer/test.html HTTP/1.1

    응답 메시지

        HTTP-version SP status-code SP reason-phrase CRLF

        예) HTTP/1.1 200 OK

 

header 헤더

    header-field = field-name: OWS field-value OWS (OWS: 띄어쓰기 허용)

    전송에 필요한 부가 정보

    크기, 압축 등등

    예)content-type: text/html; charset=UTF-8

 

empty line 공백 라인 (<CR><LF>) - 캐리지 리턴(Carriage Return) 다음에 라인 피드(Line Feed)

   한칸을 비운다

 

message body

    실제 전송할 데이터를 넣는다

 

참고

https://www.inflearn.com/course/http-%EC%9B%B9-%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC/dashboard