초보 개발자의 기록

HTTP 프로토콜 본문

카테고리 없음

HTTP 프로토콜

bambinodeveloper 2021. 12. 7. 21:10
728x90

HTTP 프로토콜 ?

웹 브라우저와 웹 서버 사이의 데이터 통신 규칙

 

웹브라우저 ---요청---> 웹 서버

               <---응답---

 

클라이언트와 서버사이에 서비스를 요청하고 응답하는 방식

SOAP ((Simple Object Access Protocol)

RESTful (Representational State Transfer)

--> HTTP 프로토콜을 응용하거나 확장한 기술

 

웹 브라우저와 웹 서버 사이에 주고받는 데이터를 보려면 HTTP 프록시 프로그램이 필요하다

 

웹 브라우저 --요청--> HTTP 프록시 --요청--> 웹 서버

                <--응답--                  <--응답-- 

 

프록시 서버? 

클라이언트와 서버 사이에서 통신을 중계해 주는 컴퓨터나 프로그램

주 용도

1. 빠른 전송을 위해 서버의 응답 결과를 캐시에 저장해줌

2. 보안- 외부로전달되는 데이터를 검사하여 특정 단어가 포함된 자료의 송, 수신을 차단하거나 보안 팀에 경고 보냄

 

HTTP 요청

웹 브라우저는 요청 데이터 라인을 구분하기 위해 각 문자열 끝에 개행 문자를 붙여 웹 서버에 전송

 

요청 라인 (Request-Line)

GET_ /_ HTTP/1.1 _

[메서드][공백][요청 URI][공백][HTTP버전][개행(CRLF)]

 

- 메서드 : 요청하는 자원에 대해 웹 서버에 내리는 명령어 

- 요청 URI : 요청하는 자원의 식별자

- HTTP 버너 :  요청 정보가 어떤 버전에 맞추어 작성했는지 웹 서버에게 알려줌

 

요청 헤더

User-Agent : Mozilla/5.0(Maci....)

[헤더 이름][:][헤더값][CRLF]

 

헤더의 종류

1. 일반 헤더 (General-header) :  요청이나 응답에 모두 적용가능

2. 응답 헤더 (Request-header) :  요청 또는 응답 둘 중 하나에만 적용가능

3. 엔티티 헤더 (Entity-header) : 보내거나 받는 본문 데이터를 설명

 

공백라인과 요청 데이터(message-body)

GET: 웹 브라우저 주소창에 url을 입력하거나 웹 페이지에서 링크를 클릭하는 경우 보내는 요청. 공백라인으로 끝남

      서버에 보낼 데이터가 있다면 URL 주소에 붙여 보냄

POST: 로그인이나 게시글을 등록하는경우 보통 사용하는 요청. 공백라인 다음에 보낼 데이터(message-body) 가 온다

 

HTTP 응답

웹 브라우저가 요청하면 웹 서버는 그에 대한 작업을 수행한 후 응답 데이터를 보냄

 

상태라인(Status-Line)

응답메세지의 첫 라인은 응답 결과에 대한 상태 정보

 

HTTP/1.1_200_OK

[HTTP버전][공백][상태코드][공백][상태설명][CRLF]

 

(응답 상태 코드)

200 : 요청이 성공적으로 처리

301 : 요청한 자원이 이동 / 헤더 정보에 이동 위치를 알려줄테니 다시 요청하라

304 : 클라이언트가 임시 보관한 응답결과와 다르지 않다

400 : 잘못된 요청이다

404 / 500 : 요청한 자원을 못 찾았다 /서버 내부에서 오류가 발생하였다.

 

응답헤더

응답 데이터를 처리할 떄 참고하라고 웹 브라우저에게 알려주는 정보

 

 

728x90
반응형