TCP는 Transport layer(4 layer)의 프로토콜인데, 4 layer의 통신은 애플리케이션 프로세스들간의 논리적인 통신이라고 할 수 있다. 호스트의 TCP 소프트웨어간에 데이터를 교환하는 unit은 TCP segment라고 부름.TCP segment는 TCP header와 TCP data(optional)로 구성되어 있다. [TCP segment = TCP header + TCP data] TCP header의 format은 다음과 같다. port numberTCP나 UDP와 같은 transport layer에서 호스트에서 실행중인 애플리케이션 프로세스로 TCP 패킷을 demultiplexing해주기 위해서 각 애플리케이션 프로세스의 소켓은 고유한 identifier를 가지고 있는데, 이게..
API를 개발하다보면 API의 버전을 나눌 필요가 있다. 그런데 API가 바뀔 때가 아니더라도 UI나 아이콘과 같은 것들이 바뀔 때 클라이언트의 버전은 올라가야한다. 그래서 버전을 구분하는 것을 API Level과 Version으로 나누도록 한다. API Level: API가 추가되거나 값이 바뀔때 올라가도록 함Version: API가 변경되지 않더라도 다른 무언가가 바뀌었을 때 올라가도록 함따라서 일정 API Level에 따라 URI에 클라이언트의 버전을 path를 추가하는 방식을 사용한다. AP 서버를 운영하다보면 웹 서버 엔진을 사용하게 되는데, 나는 nginx를 사용하였기에 nginx를 통해서 API versioning을 해보았다. nginx에서 http request의 header를 변수로 가져..
service restart는 service를 재시작하는 것. 서비스를 완전히 shutdown한다음에 다시 시작한다. service reload는 해당 service에게 그것의 configuration 파일들을 reload하라고 명령한다. 이말은 configuration을 reload하는 것이 충분해야만 한다는 것이다. 하지만 아마 특정한 서비스들은 이와 같은 rule을 따르지 않을 수도 있고, config file들을 reload 하지 않을 수도 있다. 이런 것 때문에 아마 service를 restart하는 것이 더 안전할 수 있다.
/etc/init.d이 디렉토리는 System V init tool(SysVinit)에 의해서 사용되는 스크립트들을 포함한다.이것은 전통적인 리눅스에서 service management package인데, 서비스 시작 및 종료, 설정하는 인프라뿐만 아니라 init 프로그램(커널이 이니셜라이징을 끝냈을 때 실행되는 첫번쨰 프로세스)또한 포함한다. 특히. /etc/init.d에 위치한 파일들은 특정 서비스를 관리하기 위한 start, stop, restart, reload 커맨드에 repond하는 쉘 스크립트들이다. 이 스크립트들은 직접 실행될 수도 있고, (대부분은) 어떤 다른 트리거에 의해서 실행 될 수 있다. (보통은 /etc/rc?.d/에 있는 심볼릭 링크를 통해) /etc/init 이 디렉토리는 U..
HTTPS 란 HTTP의 가장 유명한 보안 버전이고 그냥 보안 전송 계층(SSL; Secure Socket Layer)를 통해 전송되는 HTTP다. 기존의 HTTP가 암호화되지 않은 메시지를 TCP를 통해 다른 곳으로 전송했다면, HTTPS는 HTTP 메시지를 TCP로 보내기 전에 먼저 이걸 암호화 하는 보안 계층으로 보낸다. 보안 계층은 SSL과 이것의 현대적 대체품인 TLS로 구현되었는데, 이 둘을 모두 의미하는 단어로 SSL이 자주 불린다고 한다. URL이 https스킴을 가지고 있다면 클라이언트는 서버에 443번 포트로 연결하고 서버와 바이너리 포맷으로 된 몇개의 SSL 보안 매개변수를 교환하면서 핸드쉐이크를 하고 그 후에 암호화된 HTTP 명령이 뒤를 잇는다. SSL 트래픽은 바이너리 프로토콜이..
OS는 OSX,pyenv와 virtualenv가 설치있다고 가정한다. 파이썬 가상환경 설정 및 앱 구축$ pyenv virtualenv 3.5.2 JWT-sample-3.5.2$ pyenv shell JWT-sample-3.5.2 $ pip install --upgrade pip$ mkdir jwt-sample && cd jwt-sample$ pip install django==1.8$ django-admin startproject jwtsite . setttings.py 변경 (jwtsite/settings.py)TIME_ZONE = 'Asia/Seoul'#########STATIC_URL = '/static/'STATIC_ROOT = os.path.join(BASE_DIR, 'static') Data..
- Total
- Today
- Yesterday
- logback
- linux
- Apache
- Spring
- lood
- object
- JVM
- log
- runtime data areas
- TaskExecutor
- NGINX
- log level
- good practice
- async
- logging
- slf4j
- logging facade
- java
- webserver
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |