HTTP의 메서드의 종류GETPOSTPUTHEADDELETEPATCHOPTIONSCONNECTTRACEGET: 데이터를 읽는다.url을 기반으로 데이터를 요구하는 방법이다.url을 기반으로 하기 때문에 길이 제한 (2000자 미만)이 있다.성공시 HTTP 상태코드 200을 반환한다.캐싱이 가능하다.url을 기반으로 요청하기 때문에 해당 요청의 파라미터가 브라우저 기록에 남는다.url을 기반으로 요청하기 때문에 요청할 때 ASCCII문자열만 보낼 수 있다.사용자 이름, 비밀번호 등 민감한 정보를 전달할 때 사용하지 않는다.POST: 데이터를 생성한다.url이 아닌 HTTP message body를 통해 데이터를 전달한다.HTTP body를 통해 전달되기 때문에 길이 제한이 없다.성공적으로 데이터를 생성할 ..
CS 지식/네트워크
1xx (정보)서버가 요청을 잘 받았으며 해당 프로세스를 계속 이어가며 처리하는 것.100: 계속함을 의미2xx (성공)서버가 요청을 잘 받았고 이를 기반으로 클라이언트에게 성공적으로 데이터를 보낸 것을 의미한다.200 OK : 요청이 성공적으로 되었다.201 Created: 요청이 성공적이었으며 그 결과로 새로운 리소스가 생성되었다.3xx (리다이렉션)서버가 클라이너트의 요청에 대해 완료를 위해 추가 작업 조치가 필요하다.301 Moved Permanently: 이 응답코드는 요청한 리소스의 URI가 변경되었음을 의미한다.변경된 새로운 URI를 301 상태코드와 함께 주어야 한다.4xx (클라이언트 오류)클라이언트가 요청한 페이지를 제공할 수 없거나 클라이언트의 요청이 잘못되어 결과적으로 요청을 처리할..
개념로그인은 세션기반 인증방식 또는 토큰기반 인증방식으로 구현된다.HTTP의 특징은 stateless하다는 것이 있다. HTTP 요청을 통해 데이터를 주고 받을 때 요청이 끝나면 요청한 사용자의 정보 등을 유지하지 않는 특징이 있다는 것이다.따라서 HTTP 기반으로 로그인 기능을 구현했을 때 로그인 상태를 어떻게 유지해야 하는가?라는 의문이 생긴다.이를 가능하게 해주는 방식이 세션기반과 토큰기반의 2가지로 나뉜다.세션기반 로그인 프로세스로그인 -> sessionId 생성 -> 서버에서 세션ID를 쿠키로 설정해서 클라이언트에 전달클라이언트가 서버에 요청을 보낼 때 해당 세션ID를 쿠키로 담아서 전에 로그인했던 아이디인지 확인로그인을 유지세션기반의 단점사용자의 상태에 관한 데이터를 서버에 저장했을 때 로그인..
로컬스토리지의 개념로컬스토리지는 웹 스토리지 객체오 브라우저 내에 key : value 형태로 오리진에 종속되어 저장되는 데이터이다.(오리진이 같은 브라우저 내에서 공유된다.)하나의 키에 오로지 하나의 값만 저장된다.데이터는 사용자가 브라우저에서 수동으로 삭제하지 않는 한 평생동안 로컬 저장소에 저장되며 만료 날짜가 없다. 사용자가 창이나 탭을 닫아도, 컴퓨터를 종료해도 만료되지 않는다.최대 저장용량은 5MB다.보통 사용자의 행위를 기억할 때, 로그인을 유지하기 위한 값 등으로 사용되며 로컬 스토리지 데이터는 자동으로 서버로 전송되지 않는다. (쿠키는 자동으로 전송된다.)오리진위의 이미지의 주소 부분에서 포트번호까지의 경로를 오리진이라고 한다.로컬 스토리지는 오리진에서 공유된다는 뜻은 이 경로까지가 같은..
암호화는 승인된 당사자만 정보를 이해할 수 있도록 데이터를 스크램블한 방법이다. 이를 복화화하려면 송신자와 수신자가 서로 동의한 키가 필요하다.스크램블각 단어나 문자를 패턴에 따라 암호화하는 것이 아니라 무작위 방식으로 개별 데이터 비트를 섞는 방식예를 들어, 공통 128비트 고급 암호화 표준(AES, Advanced Encryption Standard)로 암호화 된 파일의 경우 이 파일을 구성하는 비트는 약 10회 스크램블 되며 다른 컴퓨터가 키 없이 해독하려면 아주 오랜 시간이 걸린다.대칭 암호화대칭 암호화는 키를 하나만 사용하는 암호화 방법이다.일반적으로 사용되는 대칭 암호화 알고리즘은 DES, AES가 있다.Plaintext + key = ciphertext // Ciphertext + key =..
HTTP/2구글에서 HTTP/1.1의 한계를 극복하기 위해 SPDY 프로토콜을 개발함.2015년에 SPDY를 기반으로 HTTP/2를 만들었다.바이너리 포맷 계층애플리케이션 계층과 전송 계층 사이에 바이너리 포맷 계층을 추가한다.HTTP1.0은 일반 텍스트 메시지를 전송하고 줄바꿈으로 데이터를 나눴지만 HTTP/2.0은 바이너리 데이터로 변경됨. 더 작은 메세지가 '프레임'으로 캡슐화 되어서 전송됨.h2, h2ch2c는 TLS를 사용하지 않고 TCP 연결 위에서 직접 HTTP/2를 사용하는 방식이다.개발 환경에서의 디버깅 또는 로컬 테스트를 위해 암호화된 연결을 설정할 필요가 없기 때문에 편리하게 테스트에 이용할 수 있다는 장점, 암호화와 관련된 오버헤드가 없다는 장점이 있다.h2는 tls가 장착된 htt..
HTTP/1.0수명이 짧은 연결.각 HTTP 요청당 TCP 핸드셰이크가 발생된다.기본적으로 한 연결 당 하나의 요청만 처리하도록 설계되었다.한 번 연결할 때마다 TCP 연결을 해야 해서 RTT가 늘어나는 단점이 있다. HTTP/1.1keep-alive default매번 데이터를 요청할 때마다 TCP 연결을 하는 것이 아니라 한 번 해놓고 계속해서 데이터를 받을 수 있게 변경됨.keep-alive headerTCP 연결을 유지하는 것을 알려주는 헤더로 연결유지시간인 timeout과 최대 요청수를 정할 수 있다.호스트 헤더1.0은 서버가 하나의 호스트만 가진다고 가정하기 때문에 헤더에 호스트를 포함하지 않는다. 이 때문에 1.0은 하나의 IP에 하나의 호스트만 가질 수 있다.하지만 서버는 여러 개의 호스트를..
정의사용자가 HTTP요청을 하게 되면 헤더와 바디를 주고 받는다.바디는 본문이고 보통 JSON, html, image 등이 담긴다.헤더는 바디를 설명하는 정보를 포함하여 여러 정보가 담긴다.헤더는 key - value 형태로 설정된다.HTTP 요청을 할 때 3가지의 헤더 - 일반헤더, 요청헤더, 응답헤더가 자동으로 생성된다.서버에서 설정하는 헤더는 응답헤더, 클라이언트에서 설정한 헤더는 요청헤더이다.일반헤더요청 URL, 요청 메서드, 자원 요청시 해당 자원의 출처를 나타내는 URL의 노출여부를 정하는 보안정도가 설정되어 있는 Referrer Policy 등이 들어간다.요청헤더요청 헤더는 클라이언트가 서버에 요청할 떄 클라이언트가 설정하거나 자동으로 생성하는 헤더요청 메서드, 클라이언트 OS, 브라우저 정..