2021. 6. 20. 22:38 Network

HTTP Protocol

반응형

HTTP란?

. Hyper Text Transfer Protocol의 약자.

. Internet에서 Data를 주고 받을 때 사용하는 Protocol의 일종

. 비연결성이라는 특징이 있으며 Socket은 TCP socket을 사용한다.

 -> HTTP 통신은 요청 -> 응답 과정이 끝나면 연결이 끊기기 때문.

 -> HTTP 1.1부터 keep-alive header를 통해서 연결을 유지하는 것이 가능해졌다.

. Stateless이다.

 -> 연결을 유지하지 않기 때문에 Server는 Client를 식별하지 못한다.

 -> 이를 해결하는 방법으론 쿠키사용, 세션, OAuth, JWT등 여러 방법이 있다.

. Server와 Client의 통신이 평문(ASCII)으로 이루어 진다.

 

각 HTTP 요청에 대한 주요 응답 코드는 아래와 같다.

100 ~ 109 : 메세지 정보

200 ~ 206 : 요청 성공

300 ~ 305 : Redirection

400 ~ 415 : Client Erorr

500 ~ 505 : Server Error

 

HTTP Method의 종류

. POST

 - Server에 Data정보를 입력하는 요청인 경우 주로 사용

. GET

 - Server에 특정 Data에 대한 조회를 요청하는 경우 주로 사용

. PUT

 - Server가 요청을 통해 URI에 따른 Data 생성 혹은 갱신 시 주로 사용

. DELETE

 - Server에 특정 Data, Resource의 삭제를 요청할 때 주로 사용

. HEAD

 - Get과 유사하지만 Server는 응답 시 Header정보만 응답한다.

 - Client가 Header 정보만 필요로 하는 경우 사용

반응형

'Network' 카테고리의 다른 글

Reverse Proxy Server 란?  (0) 2021.07.18
Proxy Server 에 대하여  (0) 2021.07.18
OSI 7계층과 TCP/IP 4 계층  (0) 2021.06.20
load balancing  (0) 2020.08.27
OSI 7계층와 TCP/IP 4 계층  (0) 2020.08.27
Posted by Sweetmeats_boy

2021. 6. 20. 22:15 용어 관련

DeadLock, Live Lock

반응형

동기화 기법과 관련하여 Thread가 Lock이 걸리는 경우는 두가지가 존재한다.

 

Dead lock과 Live lock 두가지이다.

 

Dead lock [ Process 간에도 발생 가능. ]

 - Thread A가 A Resource를 획득 후 Thread B가 B Resource 를 획득.

 - 그 후 Thread A가 B Resource를 요청

 - 그 후 Thread B가 B Resource 해제를 하기전에 A Resource를 요청

 - 서로 물고 물리는 광계가 되며 Thread A, B 모두 Resource를 얻지 못한다.

 - 두 Thread가 Lock 경쟁을 하므로 다음 작업 진행 불가.

 

Live lock [ Process 간에도 발생 가능. ]

 -Thread A가 Resource A를 획득

 - Thread A가 Resource A를 획득한 후 시간이 오래걸리는 작업을 진행

 - 혹은 Thread A가 작업 종료 시 Resource A를 반환하지 않은 경우

 - Thread B가 Resource A에 대하여 요청을 한 후 계속 대기하는 경우가 발생한다.

 

Dead lock 방지

 - Resource의 할당과 해제순서를 잘 지킨다.

 - 주기적으로 Deadlock 상태를 확인한다.

 

Live lock 방지

 - Resource  점유에 대한 시간 제한을 둔다.

 - 가능한 임계영역을 작게 구성한다.

반응형

'용어 관련' 카테고리의 다른 글

Process에 대해서  (0) 2023.12.13
proxy server , reverse proxy server  (0) 2021.07.18
Zero Trust Model  (0) 2021.07.18
SPOF란  (0) 2021.06.20
데드 레커닝[Dead reckoning] 이란?  (0) 2019.08.30
Posted by Sweetmeats_boy
반응형

Process란 운영체제로부터 자원을 할당받은 작업의 단위이다.

 

Thread는 Process의 자원을 이용하는 실행 흐름의 단위이다.

 

CPU 역시 Thread 단위로 점유하며 한개의 Process안에 여러개의 Thread가 존재 할 수 있다.

 

같은 Process에 속한 Thread들은 Process의 code, data, heap영역을 공유하며

 

이로 인해 context switching 시 다른 process의 thread가 cpu를 점유할때에 비하여

 

같은 Process에 속한 Thread가 CPU를 점유 시 레지스터에 복사하는 비용이 적어 더 효율적이다.

 

각각의 Thread는 고유의 Stack 영역을 지닌다.

 

이러한 특징 때문에 Process에 속한 특정 Thread가 code, data, heap 영역에서 문제를 발생시킬 경우

 

관련 Thread들이 모두 영향을 받는다.

반응형

'Server' 카테고리의 다른 글

Convoying 이란?  (0) 2021.06.25
Lock Free 알고리즘에 대하여  (0) 2021.06.25
동기화 기법들  (0) 2021.06.20
Socket 처리 방법들 : IOCP와 ASIO 방식 등등  (0) 2021.06.20
서버 Socket 설정하는 방법들  (0) 2019.09.06
Posted by Sweetmeats_boy

블로그 이미지
Sweetmeats_boy

태그목록

Yesterday
Today
Total

달력

 « |  » 2024.11
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

최근에 올라온 글

최근에 달린 댓글

최근에 받은 트랙백

글 보관함