컴파일하고 올바른 위치로 전송하여 다른 컴퓨터와 통신할 수 있음신뢰감을 보장한다.흐름제어가 가능하다.다중화가 가능하다.TCP/IP 모델은 네트워크 통신이 일어나는 과정을 4단계로 나눈 것
OSI 4계층이라고도 부름
| TCP/IP 모델 | |
|---|---|
| 4계층 | 응용 계층(Application Layer) |
| 3계층 | 전송 계층(Transport Layer) |
| 2계층 | 인터넷 계층(Internet Layer) |
| 1계층 | 네트워크 액세스 계층(Network Access Layer) |
TCP는 메세지 파일들을 작은 패킷으로 나누어 인터넷을 통해 전송하는 것과 수신된 원래 메세지로 재조립하는 일을 담당
반면, 하위계층인 IP는 각 패킷에 주소부분을 처리하며 패킷들이 목적지에 정확하게 도달할 수 있게 함
사용자와 가장 가까운 계층
| 응용 계층 | |
|---|---|
| 데이터 단위 | DATA/Message |
| 역할 | 응용프로그램 간의 데이터 송수신 |
| 종류 | 응용계층, 표현계층, 세션계층 |
| 전송 주소 | X |
| 전송 계층 | |
|---|---|
| 데이터 단위 | Segment |
| 역할 | 통신 노드 간의 연결 제어 및 자료 송수신을 담당 |
| 종류 | 전송 계층 |
| 전송 주소 | 포트 번호 |
| 인터넷 계층 | |
|---|---|
| 데이터 단위 | Packet |
| 역할 | 네트워크상 최종목적지까지 정확하게 연결되도록 연결성을 제공 |
| 종류 | 네트워크 계층 |
| 전송 주소 | IP |
| 네트워크 액세스 계층 | |
|---|---|
| 데이터 단위 | Frame |
| 역할 | 물리적으로 데이터가 네트워크를 통해 어떻게 전송되는지를 정의 |
| 종류 | 물리 계층, 데이터 링크 계층 |
| 전송 주소 | MAC 주소 |
통일시키는 것이 좋음
단순화한 것| 구분 | 프로토콜 |
|---|---|
| 구문(Syntax) | 전송하고자 하는 데이터의 형식, 부호화, 신호 레벨 등을 규정 |
| 의미(Semantics) | 효율적이고 정확한 정보 전송을 위한 제어 정보를 규정 |
| 시간(Timing) | 통신 속도, 순서 제어 등을 규정 |
| 기능 | 역할 |
|---|---|
| 단편화/재합성 | 데이터 블록을 나누고 합쳐서 전송 |
| 캡슐화 | 프로토콜에 필요한 데이터 정보를 부착 |
| 연결/흐름/오류 제어 | 데이터 전송에 필요한 연결/흐름/오류를 개설,조정,종결 |
| 순서 결정 | 데이터 단위 순서대로 수신 측에 전달 |
| 주소 설정 | 발생지, 목적지 등의 주소를 명기하여 데이터를 전달 |
| 동기화/다중화 | 상태를 일치시키는 기능 통신로를 나누어 동시에 사용할 수 있도록 하는 기능 |

추가, 실제 구현 내용의 일부를 내부어 감추어 은닉한다는 의미제거| HTTP 구조 | 역할 |
|---|---|
| Start Line | 요청라인/상태라인 👉 항상 한 줄 |
| Header | 헤더는 생략 가능 |
| Empty Line | 공백라인 |
| Message Body | 메세지 본문 👉 bite로 담을 수 있는 정보들은 가능 |
| 메서드 | 역할 |
|---|---|
| GET | 자료를 조회할 때 사용 |
| POST | 자료를 등록할 때 사용 |
| PUT | 자료의 수정을 요청할 때 사용 |
| DELETE | 자료의 삭제를 요청할 때 사용 |
데이터 처리 기능상태에 대한 서버의 응답요청을 받았으며 프로세스를 계속한다
HTTP 1.0에서는 지원안됨
| 코드 | 설명 |
|---|---|
| 100 | Continue - 서버가 request 헤더는 받았고, 클라이언트가 request 바디 부분을 보내고 있는 상태 |
| 101 | Switching Protocol - 요청자가 서버에게 Switching Protocol을 묻는 상태 |
| 102 | Processing - 요청자에 의해 서버가 요청을 수신하였으며 이를 처리했지만, 응답이 없는 상태 |
| 103 | Checkpoint - 중단된 Put과 Post 요청을 재개할 목적으로 되찾을 수 있는 request를 사용하는 상태 |
요청을 성공적으로 받았으며 인식했고 수용했다
Successful : 성공 응답
| 코드 | 설명 |
|---|---|
| 200 | OK - 에러 없이 전송이 성공된 상태 |
| 201 | Created - request가 되었고, 새로운 자원이 만들어진 상태 주로 회원가입, 특정 업로드가 되었거나 서버에서 새로운 식별자를 생성할 때 사용하기도 함 |
| 202 | Accepted <br / > - 서버가 request를 전송받았으나 현재 완전하게 처리되진 않은 상태 |
| 203 | Non-Authoritative Informaiton - 서버가 클라이언트 요구 중 일부만 전송한 상태 |
| 204 | No Content - 서버가 클라이언트 요구를 처리했으나 전송할 데이터가 없는 상태 성공적으로 처리했지만 Content를 제공하지 않는 것 |
| 206 | Partial Content - 클라이언트의 header 범위 문제로 서버가 자원 일부만 전달받은 상태 |
redirection
요청 완료를 위해 추가 작업 조치가 필요
| 코드 | 설명 |
|---|---|
| 301 | Moved Permanently - 요청된 페이지가 새 URL로 옮겨진 상태 |
| 302 | Found - 요청된 페이지가 일시적으로 새 URL로 옮겨진 상태 |
| 304 | Not Modified - 마지막 요청 이후 수정되지 않은 상태 |
| 305 | Use Proxy - location field에 proxy의 URL을 사용하는 상태 |
| 307 | Temporary Redirect 302 Foung HTTP 응답 코드와 동일한 의미가 있으며, 사용자 에이전트가 반드시 사용된 HTTP 메소드를 변경하지 말아햐 하는 점만 다른 상태 |
Client Error
요청의 문법이 잘못되었거나 요청을 처리할 수 없다.
| 코드 | 설명 |
|---|---|
| 400 | Bad Request - 요청사항에 문법적인 오류가 있어서 서버가 이해할 수 없는 상태 |
| 401 | Unauthorized - 해당 요청에 대한 권한이 없는 상태 - 이 코드를 사용할 때는 반드시 브라우저에 어느 인증방식을 사용할건지 보내줘야함 |
| 403 | Forbidden - 금지된 요청을 허가하지 않는 상태 - 단순히 권한이 없는 상태일 때 - 서버가 요청을 거부할 때 |
| 404 | Not Fount - 요청한 페이지를 찾을 수 없는 상태 - 요청해서 서버는 찾았으나 데이터를 찾지 못한 경우 |
| 405 | Method Not Allowed - request에 명시된 요청 Method가 제공되지 않은 상태 - url는 있지만 해당 method는 제공되지 않는 경우 |
| 406 | Not Acceptable - request에서 accept header에 not acceptable의 내용을 가진 자원을 요청한 상태 |
| 408 | Request Timeout - 요청 대기 시간이 지난 상태 |
| 410 | Gone - 요청 페이지는 더 이상 사용할 수 없는 상태 - 404와 달리 찾는 resource가 영원히 사라진 경우에 사용 |
Server Error
서버가 명백히 유효한 요청에 대해 충족을 실패
요청이 올바른 것인지에 대해서는 알 수 없음
| 코드 | 설명 |
|---|---|
| 500 | Internal Server Error - 일반적인 서버 에러 메세지로 요청 사항을 이행할 수 없는 상태 |
| 502 | Bad Gateway - 게이트웨이나 프록시의 상태가 나쁘거나 과부하인 상태 |
| 504 | Gateway Timeout - 과부하 등의 이유로 게이트웨이나 프록시의 한계 대기 시간이 지난 상태 |
| 505 | HTTP Version Not Supported - request에서 사용한 HTTP 프로토콜을 서버가 지원하지 않는 상태 |

보안적인 이유로 CORS를 제한한다. 그래서 CORS 요청을 하려면 서버의 동의가 필요하다. 만약, 서버가 동의한다면 브라우저에서는 요청을 동의하고 동의하지 않는다면 브라우저에서 요청을 거절한다. 이러한 허락을 구하고 거절하는 매커니즘을 HTTP 헤더를 통해서 가능한데 이것을 CORS라고 부른다.