웹 개발 Web Development

HTTP 프로토콜 및 요청과 응답

코딩고블린 2020. 1. 27. 15:49

HTTP 프로토콜 ?

HTTP 프로토콜이란, 브라우저가 서버(Sever)가 정보를 주고받기 위한 통신 규약이다.

TCP/UDP 어플리케이션 계층 기반으로, 연결을 상시 유지하지 않는다.

요청-응답 두가지 타입 *패킷으로 텍스트(Plan Text, XML, Json 등...) 데이터를 주고받는다. 

 

*패킷 : 데이터의 묶음 단위로 한번에 전송할 데이터의 크기

 

HTTP 메세지(요청/응답) 구조

HTTP 요청, 응답은 다음과 같은 구조를 하고 있다.

  • 요청 라인
  • 헤더
  • blank line (빈 줄)
  • 바디 

응답/요청 패킷의 기본 Structure

 

 

HTTP 요청 메서드

데이터 요청의 종류에 따라서, 다음과 같은 메서드를 사용 한다.

  • GET : 데이터 요청 및 조회 (헤더)
  • POST : 신규 데이터 생성하거나 기존 데이터를 가공 (바디)
  • PUT : 데이터 변경
  • DELETE : 데이터 삭제
  • HEAD : 서버 헤더 정보를 획득. GET과 비슷하나 Response Body를 반환하지 않음
  • OPTIONS : 서버 옵션들을 확인하기 위한 요청. CORS에서 사용

 

HTTP Status (상태)

요청 응답에 상태에 따라 약속된 코드를 함께 반환하여, 효율적인 데이터 처리를 가능하게 한다.

100번대부터 500번대 까지 다양한 응답 및 에러내용이 약속되어있다.

다음은 

 

100번대 : 요청 계속

200번대 : 요청 성공

300번대 : 응답 가능 (리다이렉션) 

400번대 : 클라이언트단 요청, 응답 에러

  • 400 Bad Request : 잘못된 문법 및 약속되지않은 요청으로 서버가 읽을 수 없음
  • 403 forbidden : 서버, 컨텐츠에 접근할 권리 없음
  • 404 Not found : 요청한 페이지를 찾을 수 없음

500번대 : 서버/DB 요청, 응답 에러

  • 500 Internal Server Error : 서버 처리 작업 불가, 오류
  • 502 Bad Gateway : Gateway 로 처리작업중 잘못된 응답

 

100~500번 대 상태 코드 정리 :  https://developer.mozilla.org/ko/docs/Web/HTTP/Status