1. POST 요청

POST 요청

: GET요청

: URL로 요청정보를 전달, URL만 분석

: 길이제한, 암호화 불리

: POST 요청

: 메시지 바디로 요청 정보 전달

: 바디 분석 필요

: 웹브라우저에서 주소 입력 : GET 요청

: 웹브라우저의 폼 입력 : GET/POST 요청

: 폼 구성요소

: method : post, get

: action : 요청 경로

HTML 폼 

: 폼구성요소 : input

: type, name

폼 인코딩 

: 폼요청 - 요청바디에 요청 정보 작성

: 요청 바디에 메시지 인코딩방식 : enctype

: application/x-www-form-unlencoded

: 이름=값 방식으로 작성, 쿼리문자열

: key1=value1&key2=value2...

: multipart/form-data

: 파일, 글자등 여러 데이터 전송

: text/plain

: json/xml

2. POST 요청 처리

: 요청 메시지 - request.IncomingMessage

: Readable Stream

: 이벤트 - data, end

: data 이벤트에서 데이터를 차곡차곡 받고

: end 이벤트 함수 호출 시 querystring 모듈로 parse하여 query를 얻는다.

: Post요청 후 Refresh 하면, 중복 Post 요청이됨.

PRG 패턴

: 중복 Post요청 방지

: Post요청 처리 후 redirect 응답 - 주소를 다른곳으로 옮기기

: PRG(Post-Redirect-Get) 패턴

: 리프레쉬 - Get 요청 중복은 괜찮음

: 응답 메세지 작성 코드

: Redirection : 클라이언트 주소 옮기기

3. HTTP 클라이언트

: POST 맨

: BODY, x-www-form-urlencoded

POST 요청 2 

1. 멀티파트 요청

POST 요청 메시지

: SNS서비스 중 접하는 Post 요청

: 사진올리기

: 글과 사진 올리기

: 메시지 바디 기록 방식

: multipart/form-data

멀티파트 메시지 구성

파트 구분 정보

:  content-type 헤더 항목의 boundary로 정의

: Content-Type:multipart/form-data; boundary = XXXYYYZZZ

: 메시지 바디 내 파트 구성

: 파트 구분자(--XXXYYYZZZ) // 마무리 때에는 --XXXYYYZZZ--

: 파트 인코딩

: 파트 내 정보

HTML 폼

: 폼 enctype : multipart/form-data

: input 타입 : file

2. 멀티 파트 요청 분석

: 멀티 파트 요청 분석

: 메시지 요청 헤더

: Content-Type:multipart/form-data; boundary = XXXYYYZZZ

: 위 정보 확인

: 메시지 바디 분석

: 각 파트 구분

: 파트별 구분

: 분석하는게 복잡하고 여려워서 모듈을 사용한다.

멀티파트 분석 모듈

: formidable

: 요청 분석 클래스, 파일 받는 클래스

: 이벤트 - field, file, aborted, end // 프로퍼티 - upleadDir, keepExtension, multiples

: multer

업로드된 파일

: 업로드 설정 폴더로 저장

: 파일 이름 변경

3. 파일 업로드 서비스

: 파일 업로드 - 임시폴더

: 파일 업로드 후

: 파일을 임시 폴더 -> 리소스 저장소로 이동

: 이름이 충돌되지 않도록 이름 변경

: 날짜, 일련번호, 사용자 계정...







'프로그래밍 > Nodejs' 카테고리의 다른 글

RESTful  (0) 2017.04.24
모바일서버  (0) 2017.04.24
HTTP 서버  (0) 2017.04.16
http 통신  (0) 2017.04.16
흐름제어 - 콜백, Async모듈, Promise  (0) 2017.04.15

+ Recent posts