본문 바로가기
node.js

http

by 루에 2019. 2. 20.
반응형

HTTP(Hyper Text Transfer Protocol)

하이퍼 텍스트 : 하이퍼 링크로 논리적으로 연결된 문서(eg HTML)


HTTP통신의 특징

HTTP통신 : 요청과 응답(Request and Response)


과정

웹브라우저 -> 주소 입력 -> 요청 -> 웹 서버 -> 응답 -> 웹 브라우저


URL

리소스의 위치 : URL(Uniform Resouce Locator)


HTTP 메세지 구조

요청메세지

요청 라인

요청 헤더

요청 바디(엔티티)


요청 라인

요청 메소드

요청 URL

HTTP버전


HTTP메소드 : 리소스를 다루는 행위

GET : 리소스를 얻어오는 요청

POST : 리소스 전송 요청

PUT : 저장 요청(수정)

DELETE : 삭제


요청 헤더

헤더는 키 : 값 방식으로 작성


주요 요청 헤더

Accept : 클라이언트가 받을 수 있는 콘텐츠

Cookie : 쿠키

Content-Type : 메세지 바디(엔티티)의 종류(eg json )

Content-Length : 메세지 바디 길이

If-Modified-Since : 특정 날짜 이후 변경됐을 때만


요청 정보 전달

URL을 이용해서 요청 정보전달 : GET메소드, TRACE 메소드

경로와 쿼리 스트링 사용

메세지 바디를 사용하지 않음


URLEncoded방식

메세지 헤더(컨텐츠 타입) : application/x-www-form-urlencoded

메세지 바디 : 쿼리 문자열


메세지 예)

Content-Type : application/x-www-form-urlencoded

title=sdnfi&Director=George+Miller


Content-TYpe : application/json

{

"name" : "gak",

"age" : "34"

}


멀티파트를 이용한 요청 정보 전달

바이너리 파일을 올리는 경우 주로 사용

하나의 메세지 바디에 파트를 나눠서 작성


메세지 헤더

컨텐츠 타입; 파트 구분자(boundary)

multipart/form-data; boundary=frontier


요청정보전달

메시지 바디 사용 여부

바디의 인코딩 방식


HTTP 응답

응답 메세지 구조

응답 라인

응답 헤더

응답 바디


응답 라인

버전

상태코드

상태 메세지


상태 코드 : 서버의 응답 코드

대분류

1xx:정보

2xx:성공

200 : 요청 성공

201 : 생성 요청 성공

202 : 요청 수락, 요청 처리 보장 안됨

3xx:리다이렉션

300 : 여러 리소스에 대한 요청 결과 목록

301,302,303: Redirect. 리소스 위치가 변경된 상태

304 : 리소스가 수정되지 않았음

4xx,5xx:오류

400 : 요청 오류

401 : 권한 없음

403 : 요청 거부

404 : 리소스 없음

500 : 서버 내부 오류

501 : 서버가 지원하지 않는 요청

503 : 과부하 등으로 서비스 불가능 상태


응답 메세지 헤더

주요 헤더 필드

Content-Type : 바디 타입

Content-Length : 바디 길이

Set-Cookie : 쿠키 설정

ETag : 엔티티 헤더


응답 메세지 바디

바디데이터

HTML

XML/JSON

Octet Stream 등


컨텐츠 타입

메세지 헤더에 기록 : Content-type

대분류/소분류


주요 타입

text/plain, text/html

apllication/xml, application/json

image/png, image/jpg

audio/mp3, video/mp4



반응형

댓글