Notice
Recent Posts
Recent Comments
Link
«   2025/07   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

유댕이의 개발공부일지

<TIL 20.07.03> HTTP 본문

TIL

<TIL 20.07.03> HTTP

유댕2 2020. 7. 3. 20:56

 www 상에서 문서를 주고받는 프로토콜로써, TCP, UDP를 사용하며, 80 포트를 사용한다고 한다. HTTP/1.1에서는 클라이언트가 요청을 보내면 서버가 응답을 보내주는 구조이며, 이를 HTTP메시지HTTP메시지라고 한다. 메시지 타입은 클라이언트가 서버로 보내는 요청 메시지(Request)와응답 메시지(Response)로 구성되어 있다. 이 메시지들의 구조는 시작줄, 헤더, 바디로 나뉜다. 헤더와 바디 사이엔 공백으로 비어있는 한 줄이 있다

 

요청 메시지

 

요청 라인엔 Method / URL / Version의 세 개의 필드가 존재한다. 세개의 구분은 공백으로 한다.

-  요청 Method : GET

-  요청 URL : puppues.html

-  HTTP Version : 1.1

헤더 부분 요청과 요청 데이터에 대한 메타정보들 키-값 방식으로 들어간다.

바디 부분은 서버로 전달하고자 하는 사용자의 데이터를 포함한다. 때문에 존재할 수도 안 할 수도 있다. 

 

HTTP Request Methodes

  • Get : 특정 리소스를 가져오도록 요청
  • Post  : 데이터를 서버로 제출하는 용도로 사용
  • Put : Post와 비슷하나, 연속적인 요청 시에도 같은 효과 가져옴. 기존 데이터를 교체하는 용도로 쓰일 수 있음
  • Delete : 리소스의 삭제를 요청할 때 사용

 

더보기

CRUD

Create : 글 생성

Read : 글 불러오기

Update : 글 수정

Delete : 글 삭제

 

응답 메시지

 

상태 라인엔 Version / Code / Phrase의 세 개의 필드가 공백으로 구분되어 있다.

-  HTTP Version : 1.1

-  상태 Code : 200

-  응답 이유 : OK

전체적으로 요청 메시지와 구성이 비슷하다. 다른 점은 내용과 맨 윗줄의 상태 라인이라 할 수 있다.

 

Status Codes

  • 200 : 요청 성공
  • 304 : 요청에 대한 응답이 수정되지 않음
  • 403 : 콘텐츠에 접근할 권한 없음
  • 404 : 요청받은 리소스를 사용할 수 없음 
  • 500 : 서버가 처리할 수 없는 요청

400번대 클라이언트 잘못 // 500번대 서버 잘못

 


Review

*node.js : 자바스크립트를 컴파일하여 구동하고 이벤트 기반의 non blockig모델로 속도가 빠른 자바스크립트 런타임이다. (자바스크립트가 구동 중인 환경)

별도로 다운로드하지 않아도 require('') 방식으로 사용할 수 있다.  ex) fs, http, url, path

*런타임 : 프로그래밍 언어가 구동되는 환경

*컴파일 : 컴퓨터가 알아들을 수 있게 바꿔줌

*V8 : 자바스크립트를 기계어로 컴파일해줌

*npm : node package manager, 세계에서 가장 큰 오픈소스 라이브러리 생태계 중 하나이다.

*package.json : npm을 활용하기 위한 정보들이 모여 있는 파일이다. project전반에 대한 내용이 담겨있다.

* URI / URL (URI 안에 URL 이 포함됨)

 URI (Uniform Resource Identifier) - 통합 자원 식별자, 인터넷에 있는 자원을 나타내는 유일한 주소

 URL (Uniform Resource Locator) - 파일 리소스의 위치, 네트워크 상의 자원의 위치 

UPL구조

 

 

 

 

출처 : mdn, Parts of an HTTP Request

'TIL' 카테고리의 다른 글

<TIL 20.07.07> Express  (0) 2020.07.07
<TIL 20.07.06> CommonJS  (0) 2020.07.06
<TIL 20.07.02> Browser Security  (0) 2020.07.02
<TIL 20.07.01> Web Architecture  (0) 2020.07.01
<TIL 20.06.30> feach API 간단 정리  (0) 2020.06.30