유댕이의 개발공부일지
<TIL 20.07.03> HTTP 본문
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) - 파일 리소스의 위치, 네트워크 상의 자원의 위치
출처 : 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 |