본문 바로가기

Lecture

HTTP 요청 헤더

node server.js 를 만들고 3000번 포트를 연결한다음 url창에 localhost:3000을 치고 엔터를 누른다면 어떻게 될까?

엔터를 눌렀을때

 '요청 헤더'라는게 만들어 진다.

 

 

요청헤더는 크게 4가지 파트로 나뉜다.

 

1. start line

 

   => request method(GET or POST) 현재 URL HTTP버전

   위 같은 상황에서는 ) GET http://localhost:3000 HTTP/1.1

 

2.headers

 

헤더는 화면에 꾸며지지 않는 정보들을 담고 있다.

몇가지만 살펴보자

host: 사이트의 도메인 주소(ex: 네이버, 구글)

user-agent: 사이트를 사용하고 있는 user의 정보

content-length : content의 길이

 

content-type: body내용의 데이터 타입을 명시한다. (ex: multipart/formdata)

: body에서 form 형식으로 데이터를 요청할때는 application/x-www-form-urlencoded

: json 형식으로 데이터를 요청할땐 application/json

 

3. empty line

말그대로 비어있는 한 줄

 

4. body

우리 눈에 보이는 body내용이다.

: 여기서 객체형식의 내용을 해석하기 위해 사용하는게 body-parser

: json 형식의 내용을 해석하기 위해 사용하는게 body-parser.json

 

 


RESTful API

여기서 RESTful ( Representational State Transfer ) 이란 아래 메서드들을 사용하여 페이지를 구현하기로 약속이다.

API ( Application Programming Interface ) 또한 객체값으로 데이터를 전하기로 한 개념이다.

 

 

http 메소드

: 클라이언트가 웹서버에게 요청하는 수단

메소드의 위치:

http 요청 메세지의 첫째줄

 

종류

 

get : 리소스 취득 (검색)

: url, uri로 (리소스) 서버에 데이터를 요청하여 받기만 함

 

head : 메세지 헤더 취득

: get과 비슷하지만 실제 문서를 요청하는 것이 아니라, 문서 정보(?)를 요청함

: http 응답메세지에 body 없이 헤더 정보만 보냄

 

post : 내용 전송 ( 파일전송도 가능)

: 클라이언트에서 서버로 정보를 전송함 (http body에 담아 웹서버로 전송함)

: 요청 데이터의 Http 헤더에 Content-Type:application/x-www-form-urlencoded 이렇게 설정함 << 해당 정보가 폼으로 전송하는 데이터라는 것을 알리는 http 헤더 형식

요청 응답: 헤더 location에 정보를 포함 시켜 응답함

 

put : 내용 갱신 (파일 전송 가능)

: post 처럼 정보를 서버로 전송하지만 갱신 위주이다.

: 응답 헤더에 location을 보내지 않아도 됨 (클라이언트의 Uri 를 그대로 사용함)

 

delete : 삭제

: 리소스(데이터) 제거

 

options : 메소드에 대한 질문 (메소드 종류 확인 가능)

 

trace : 데이터가 수신되는 경로를 보여줌 

: 루프백 메세지(?)를 호출하기 위해 사용된다.

: 거의 사용안함

 

connect : 프락시 서버(?)오 같은 중간 서버 경유

: 웹 서버에 프락시 기능을 요청할 때 사용된다.

: 거의 사용안함

 

보안상의 이유로 get, post,options 만을 허용하는 경우가 일반적임

 

 

프록시 서버 (proxy server)는 클라이언틍와 서버 사이에 중계기능을 하는 서버

: 클라이언트가 프록시 서버를 통해 다른 네트워크 서비스에 간접적으로 접속할 수 있게 해줌

 

루프백 : 원래 신호를 보낸 곳으로 되돌아옴.

'Lecture' 카테고리의 다른 글

맥 oh my zsh , powerlevel10k 설치 방법  (0) 2021.08.26
os 개념 [커널, 쉘]  (0) 2021.08.26
WEB  (1) 2021.08.17
[react] next google analytics 연결  (0) 2021.08.10
Styled-Component로 하위 엘리먼트 css 입히기  (0) 2021.07.26