2-7. HTTP 요청과 응답 - 이론

서현우·2022년 5월 11일
0

스프링의정석

목록 보기
7/85

1. 프로토콜(protocol)이란?

서로 간의 통신을 위한 약속, 규칙.
주고 받을 데이터에 대한 형식을 정의한 것.

2. HTTP(Hyper Text Transfer Protocol)란?

  • 단순하고 읽기 쉽다. - 텍스트(HTML) 기반의 프로토콜.
  • 상태를 유지하지 않는다.(stateless) - 클라이언트 정보를 저장X
    -> 보완하기 위해 쿠키 & 세션을 사용
  • 확장 가능하다. - 커스텀 헤더(header) 추가 가능

3. HTTP 메세지 - 응답 메세지

상태코드

1xx : Informational - 정보 교환이 목적, HTTP/1.1에 추가
2xx : Success - 성공
3xx : Redirect - 다른 URL로 재요청
4xx : Client Error - 404 Not Found
5xx : Server Error - 요청은 OK. but 서버 처리중에 에러

HTTP 응답 메세지 형식

//상태 라인(status line) : 상태 코드
HTTP/1.1 200 OK 
//헤더
Content-Length : 44
Content-Type : text/html
Date : Sat, 20 Oct 2021 19:03:38 GMT
//(빈줄) :  헤더와 바디를 구분

//바디 : 실제 응답 내용
<html>
	<head></head>
	<body>
		Hello
	</body>
</html>

4. HTTP 메세지 - 요청 메세지

요청(Request) method

  1. GET : Read(얻어오기), 요청라인에 쿼리스트링으로 데이터
//요청 라인(request line)
GET /ch2/getYoil HTTP/1.1
//헤더(바디가 없음)
Host: localhost
Cache-Control: no-cache
Content-Type: application/x-www-form-urlencoded
  1. POST : Write(글쓰기, 로그인, 회원가입, 파일첨부)
//요청 라인
POST /ch2/getYoil HTTP/1.1
//헤더
Host: localhost
Cache-Control: no-cache
Content-Type: application/x-www-form-urlencoded
//(빈줄)

//바디 : 서버에 전송할 data
year=2021&month=10&day=1

5. HTTP 메서드 - GET, POST

  1. GET
  • 서버의 리소스를 가져오기 위해 설계
  • QUERY STRING을 통해 전송할 데이터를 전달(소용량)
  • URL에 데이터가 노출되므로 보안에 취약
  • 데이터 공유에 유리 -> 전달에 유리
    (ex. 검색엔진에서 검색단어 전송에 이용)
  1. POST
  • 서버에 데이터를 올리기 위해 설계(Posting)
  • 전송 데이터 크기의 제한이 없음(대용량)
  • 데이터를 요청 메세지의 body에 담아 전송
  • 보안에 유리(HTTP + TLS(암호와) -> HTTPS를 적용하면)
  • 데이터 공유에는 불리
    (ex. 게시판에 글쓰기(Posting), 로그인, 회원가입)

Postman으로 확인 가능

profile
안녕하세요!!

0개의 댓글