HTTP상태코드는 특정 HTTP요청이 성공적으로 완료되었는지 알려준다. 크게 100번대, 200번대, 300번대, 400번대, 500번대가 있고 주요 사용되는 코드는 200, 400, 500이다
100번대 : (조건부 응답)클라이언트가 서버에 요청을 했지만 해당 요청은 여전히 처리중임을 의미
200번대 : (성공)서버가 클라이언트의 요청을 수신하고 성공적으로 처리했음을 의미
300번대 : 클라이언트가 요청한 페이지가 일시적 또는 영구적으로 이동되었음을 의미
400번대 : 클라이언트의 잘못된 요청으로 서버가 이해를 못해 요청을 수행할 수 없음을 의미
500번대 : 클라이언트의 요청이 성공했지만 서버오류로 인해서 서버가 요청을 정상처리 하지 못함을 의미
HTTP의 주요 메소드에는 get, post, put, delete가 있다.
get : 클라이언트에서 서버로 어떠한 정보를 요청하기 위해 사용되는 method
post : 요청데이터처리 및 주로 등록에 사용 method
put : 리소스대체, 수정 / 해당 리소스가 없으면 새롭게 생성하기위해 사용되는 method
delete : 지정된 리소르를 삭제하기 위해 사용되는 method로 요청시에 Body값과 Content-Type값이 비워져 있음
메모리의 영역은 크게 4가지로 이루어져 있다.
코드영역 : 실행될 프로그램코드가 저장되는 영역으로 텍스트 영역이라고도 부른다. 프로그램이 실행되면 OS가 HDD에서 메모리(코드영역)로 실행코드를 올리고 CPU는 코드영역에 저장된 명령어를 하나씩 처리한다.
데이터영역 : 프로그램의 전역변수와 정적변수가 저장되는 영역으로 프로그램이 실행될때 함께 할당되며 프로그램이 종료되면 소멸된다.
힙영역 : 사용자가 직접 관리할 수 있는 메모리 영역으로 사용자에 의해 메모리공간이 동적으로 할당되고 해제된다.
스택영역 : 함수와 관계되는 지역변수와 매개변수가 저장되는 영역으로 함수의 호출과 함께 할당되어 함수의 호출이 끝나면 같이 소멸된다.
프로세스 :
현재 실행중인 프로그램을 뜻하며 잡이라는 용어와 혼용해서 쓰기도한다.
프로세스는 최소 하나의 스레드를 보유하고 있으며 독립된 메모리영역(code, data, heap, stack)을 할당받는다.
스레드 :
프로세스 내에서 실행되는 여러흐름의 단위
stack영역을 할당받고 나머지(code, data, heap) 영역은 프로세스내에 있는 스레드끼리 공유한다.
RDBMS : 정해진 스키마가 명확하게 정의되어 있어 명확한 데이터구조를 보장한다.
NoSql : 스키마가 없기 때문에 데이터 구조변화가 자유로운 데이터구조를 가질 수 있다.
가비지 컬렉션은 프로그래머가 동적으로 할당한 메모리 영역 중 더이상 쓰이지 않는 가비지영역을 찾아서 해체하는 기능을 의미한다.
Representational State Transfer의 약자로 두 컴퓨터 시스템이 인터넷을 통해 정보를 안전하게 교환하기 위해 사용하는 인터페이스입니다.
REST API는 이를 표현하기 위해 Resouce, Method, Representation 3가지를 이용한다.
이 3가지를 통해 상태가 전이 되는 것을 표현하면 REST ful한 API를 작성할 수 있다.
- Resouce(자원, (예) 문서, 이미지,리소스들의 집합, 객체 등)
- Method(요청 방식, (예) Get, Post 등)
- Representaion of Resource(자원의 형태, (예) JSON, XML 등)