Burninghering's Blog
article thumbnail

HTTP 요청과 응답

프로토콜이란?

서로 간의 통신을 위한 약속, 규칙

주고 받을 데이터에 대한 형식을 정의한 것

 

HTTP(Hyper Text Transfer Protocol)

단순하고 읽기 쉽다. (텍스트 기반)

상태를 유지하지 않는다(stateless) -> 클라이언트의 정보를 저장하지 않는다! (쿠키와 세션을 이용)

확장 가능하다 (커스텀 헤더 추가 가능)

우리는 URL로 요청을 하지만 사실은 HTTP가 만들어져서 요청이 간다!

응답 내용 또한 HTTP 형식으로 온다

 

HTTP 응답 메시지 형식(서버 -> 클라이언트)

헤더가 몇 줄이 될 지 모르기 때문에,

헤더와 바디 사이에는 빈 줄이 있다.

 

HTTP 요청 메시지 형식 GET / POST(클라이언트 -> 서버)

GET과 POST 두 개의 요청 메소드가 있다.

GET은 READ, 바디에 내용이 없다 -> 리소스 얻어올 때

POST는 WRITE, 바디에 내용이 있다 -> 서버에 정보를 제공할 때

 

GET / POST 차이

HTTP + TLS 프로토콜 > https:// 

 

실습

GET 방식

실습 사진 1

 

POST 방식

실습 사진 2

텍스트 파일 / 바이너리 파일

바이너리 파일 : 문자, 숫자가 저장되어 있는 파일 -> 데이터를 있는 그대로 읽고 쓴다

텍스트 파일 : 문자만 있는 파일 -> 숫자를 문자로 변환 후 쓴다

 

텍스트 파일... 숫자를 문자로 바꾼다?

 

MIME(Multipurporse Internet Mail Extensions)

텍스트 기반 프로토콜(HTTP)에 바이너리 데이터 전송하기 위해서 고안된 것

HTTP Content-Type 헤더에 사용. 데이터의 타입을 명시 

 

HTTP가 바이너리인지, 텍스트인지 구분하는 것 

 

실습

postman

텍스트 파일과 바이너리 파일을 함께 보내고 있다.


ST3

@Controller
public class RequestHeader {
	@RequestMapping("/requestHeader")
	public void main(HttpServletRequest request) {
		
		Enumeration<String> e = request.getHeaderNames();

		while (e.hasMoreElements()) {
			String name = e.nextElement();
			System.out.println(name + ":" + request.getHeader(name));
		}
	}
}

위 코드를 실행하면 결과로 헤더가 나온다.

 

Base64 (64진법)

바이너리 데이터를 텍스트 데이터로 변환할 때 사용

하나의 문자 당 6bit씩으로 잘라 변환 

 

 

바이너리 데이터를 텍스트 기반인 HTTP로 보내는 방법

  1. MIME타입 쓰고 바이너리 그대로 넣거나
  2. Base64 써서 바이너리 데이터를 텍스트 데이터로 바꾸면 된다 

TIL

FACTS

오늘은 피곤해서 강의를 안들을까 하다가 강의를 1개 들었다

(위 내용은 강의 2-7 ~ 2-8 까지의 내용이다!)

내일부턴 관심사의 분리와 MVC 패턴을 배우게 되므로 집중해서 들어보도록 하자!

 

FEELINGS

강의를 들을 때마다 느끼는데, 긴 강의임에도 실속없이 강의 분량만 늘리는 듯한 강의들이 많다.

하지만 남궁성 강사님의 강사는 (배속으로 듣긴 하지만) 강의 시간 내내 실속있는 내용만 알차게 들어있다.

남궁성 강사님의 다른 강의도 듣고 싶다. 스프링 버전 2 강의도 있던데, 이 강의를 다 듣고 나면 고려해봐야겠다.

 

FINDINGS

HTTP는 텍스트 기반 프로토콜! -> HTTP로 요청과 응답이 오간다.

요청과 응답에는 각 형식의 차이가 있다->

- GET(READ) : 헤더, 리소스 얻어오기 

- POST(WRITE) : 헤더 + 바디, 서버에 정보 제공하기 

 

바이너리 파일 : 숫자와 문자가 있는 파일 -> 그대로 읽고 쓴다.

텍스트 파일 : 문자만 있는 파일 -> 숫자는 문자로 변환하고 읽고 쓴다.

MIME : HTTP에 바이너리 데이터를 전송하기 위해 고안된 방법이다. MIME에 타입이 있다.

BASE64 : 64진법.바이너리 데이터를 텍스트 데이터로 변환할 때 사용한다. 

 

FUTURE

내일부터 관심사의 분리와 MVC!

남궁성 강사님의 설명은 어떨지 기대가 된다!


본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.

http://bit.ly/3Y34pE0

 

패스트캠퍼스 [직장인 실무교육]

프로그래밍, 영상편집, UX/UI, 마케팅, 데이터 분석, 엑셀강의, The RED, 국비지원, 기업교육, 서비스 제공.

fastcampus.co.kr

 

profile

Burninghering's Blog

@개발자 김혜린

안녕하세요! 반갑습니다.