인파

You Can Become A

늦게 시작해도 누구든지 노력하면 개발자가 될수 있어요 !

공부한 내용을 정리합니다
개발 지식/HTTP 지식

🌐 HTTP 3.0 소개 & 통신 기술 알아보기

HTTP / 3.0 HTTP 2.0 의 등장과 함께 기존의 프로토콜 데이터 체계를 프레임과 스트림 개념으로 재구축한 결과 기존 보다 혁신적으로 성능이 향상되게 되었다. 하지만 여전히 HTTP는 TCP 기반 위에서 동작되기 때문에, TCP 자체의 핸드쉐이크 과정에서 발생하는 지연 시간과, 기본적으로 TCP는 패킷이 유실되거나 오류가 있을때 재전송을하는데 이 재전송하는 패킷에 지연이 발생하면 결국 HOLB(Head Of Line Blocking) 문제가 발생되었다. 즉, HTTP 2.0은 TCP/IP 4 계층의 애플리케이션 계층(L4)에서 HTTP의 HOLB를 해결하였지만, 전송 계층(L3)에서의 TCP HOLB 를 해결한건 아니기 때문이다. 애초에 TCP로 인터넷 통신을 하는 것이 발목을 잡은 것이다. 점..

category_image
인파_
2023.01.21
(0)
개발 지식/HTTP 지식

🌐 HTTP 2.0 소개 & 통신 기술 알아보기

HTTP / 2.0 HTTP 2.0은 기존 HTTP 1.1 버전의 성능 향상에 초점을 맞춘 프로토콜이다. 인터넷 프로토콜 표준의 대체가 아닌 확장으로써, HTTP 1.1의 성능 저하 부분과 비효율적인 것들을 개선되어 탄생한 것이 HTTP 2.0라고 생각하면 된다. HTTP 1.1까지는 한번에 하나의 파일만 전송이 가능했다. 비록 파이프라이닝 기술이 있었지만, 여러 파일을 전송할 경우 선행하는 파일의 전송이 늦어지면 HOLB(Head Of Line Blocking)이 발생하였다. 따라서 HTTP 2.0에서는 이 문제를 해결하기 위해 여러 파일을 한번에 병렬로 전송한다. 그래서 일반적으로 HTTP/2를 사용만해도 웹 응답 속도가 HTTP/1/1에 비해 15~50% 향상 된다고 한다. 아래는 동일 이미지를 웹..

category_image
인파_
2023.01.21
(0)
개발 지식/HTTP 지식

🌐 HTTP 0.9 ~ HTTP 1.1 까지 알아보는 통신 기술

HTTP / 0.9 HTTP의 시작은 1989년 팀 버너 리(Tim Berners-LEE)에 의해 제안된 인터넷의 하이퍼 텍스트 시스템이다. 초기 버전인 HTTP/0.9는 매우 단순한 프로토콜이었다. 가능한 메서드는 하이퍼텍스트 문서(html)를 가져오기만 하는 GET 동작이 유일했으며, 헤더(header)도 없어 요청과 응답이 극히 단순 명료 하였다. 또한 상태 코드(status code)도 없었기 때문에 문제가 발생한 경우 특정 html 파일을 오류에 대한 설명과 함께 보내졌다. A very simple HTML page HTTP 0.9 스펙을 요약하면 다음과 같다. TCP/IP 링크 위에서 동작하는 ASCII 프로토콜 Get 메서드만 지원 HTTP 헤더 X, 상태 코드 X 응답도 HTML 파일 자체..

category_image
인파_
2023.01.21
(0)
개발 지식/HTTP 지식

🌐 301 vs 302 상태 코드 차이점 (SEO)

301 vs 302 Redirection 리다이렉션(Redirection)은 보통 웹사이트를 새로운 도메인으로 옮겼거나 페이지의 주소가 바뀌없을때, 이용자들을 하여금 변경된 주소로 자동으로 옮겨가게 만드는데 사용된다. HTTP 프로토콜에서는 리다이렉션 HTTP 상태코드인 301 과 302 를 통해, 클라이언트를 지정된 URL로 보내도록 할수가 있다. 이중. 301 리다이렉션은 영구(permanent) 리다이렉션이라고 부르며, 302 리다이렉션은 일시(temporarily) 리다이렉션 이라고 부른다. 문제는 이 둘의 차이점이 애매하다는 것이다. 왜냐하면 실제로 둘이 동작 형태를 브라우저로 확인해보면, 둘다 자동으로 리다이렉션하는 것을 똑같으니 사람의 육안으로는 이 둘의 차이를 구별할수 없기 때문이다. 그럼..

category_image
인파_
2023.01.09
(0)
개발 지식/HTTP 지식

🌐 HTTP 상태 코드(1XX ~ 5XX) 종류 총정리

HTTP Status Code HTTP의 상태 코드는 클라이언트가 보낸 HTTP 요청이 성공했는지 실패했는지를 서버에서 알려주는 숫자 코드다. 개발자 도구의 네트워크 탭을 보면 아래와 같이 Status 숫자 코드로 요청의 결과를 간략하게 나타내주는데, 클라이언트를 다루는 우리들은 이 숫자를 보고 결과를 단번에 유추할수 가 있게 된다. (물론 각 코드가 무엇을 의미하는지 별도의 공부가 필요하다) HTTP 상태 코드는 3자리 숫자로 이루어져 있으며, 총 100번대 ~ 500번대 까지 존재한다. 그리고 각 상태코드의 첫 번째 자리는 최상위 코드가 되어 다음과 같이 5 개의 그룹으로 나뉘어 관리된다. 1XX : 요청이 수신되어 처리중 2XX : 요청 정상 처리 3XX : 요청을 완료하려면 추가 행동이 필요 4X..

category_image
인파_
2023.01.07
(0)
개발 지식/HTTP 지식

🌐 5XX (Server Error) 상태 코드 - 총정리 모음

5XX Server Error 5XX 번대의 상태 코드들은 서버 오류를 의미한다. 4XX 상태코드와 5XX 상태코드 모두 오류를 반환하는 응답 코드이지만, 4XX는 클라이언트의 요청에 문제가 있는 것이기에 요청 메세지를 검토하여 수정한 뒤 재전송하면 해결이 가능하지만, 5XX 는 서버에 문제가 있는 것이기 때문에 서버 자체의 상태를 보아야 하는 차이가 있다. 즉, 클라이언트가 유효한 요청을 보냈음에도, 5XX 가 발생하면 즉시 서버 상태를 확인하여 서버 복구를 진행해야 한다는 것이다. 그래서 서버가 복구되면 같은 요청 메시지를 재전송면 요청이 성공할 가능성이 있다. 또는 클라이언트와 원 서버 모두 정상이지만 중간 프록시 서버나 게이트웨이와 같은 서버의 보조 구성 요소에서도 문제가 생길때 5XX 응답 코드..

category_image
인파_
2023.01.06
(0)
개발 지식/HTTP 지식

🌐 4XX (Client Error) 상태 코드 - 총정리 모음

4XX Client Error 4xx 번대의 상태 코드들은 클라이언트 오류를 의미하며, 잘못된 문법 등의 오류로 인해 서버가 요청을 수행할 수 없고 그 원인이 클라이언트에게 있음을 뜻한다. 예를들어 잘못 구성된 요청 메세지 규칙 같은 것이 있을 수 있으며, 존재하지 않은 URL 요청도 있을 수 있다. 400 Bad Request Bad Request ⇢ 클라이언트가 잘못된 요청을 보냄을 의미 클라이언트의 잘못된 요청으로 서버가 이해할수가 없어 요청을 수행할 수 없음을 뜻한다. 주로 요청 구문, 메시지 등의 문법 오류로 인한 문제가 해당되며 요청 파라미터가 잘못되거나 API 스펙이 맞지 않는 경우에도 400 상태코드를 내뱉는다. 따라서 이를 해결하기 위해서는 클라이언트가 자신의 요청을 검토하고 재전송하여야..

category_image
인파_
2023.01.05
(0)
개발 지식/HTTP 지식

🌐 3XX (Redirection) 상태 코드 - 총정리 모음

3XX Redirection 3xx 번대의 상태 코드들은 리다이렉션을 의미하며, 이는 요청을 완료하려면 추가적인 작업(페이지 이동)이 필요함을 의미한다. 클라이언트가 관심 있어 하는 리소스에 대해 다른 위치를 사용하라고 말해주거나 그 리소스의 내용 대신 다른 대안 응답을 제공한다. 리다이렉션(Redirection)은 클라이언트가 요청한 URL에 대해 다른 URL을 다시(re) 지시(direct)하여 다른 주소로 이동할 수 있게 하는 기술이다. HTTP 에 사용되는 리다이렉션은 크게 3가지 종류로 나눌 수 있다. 영구 리다이렉션(Permanent) : 특정 리소스의 URL 이 영구적으로 이동 일시 리다이렉션(Temporary) : 특정 리소스의 URL 이 일시적으로 이동 특수 리다이렉션(Special) :..

category_image
인파_
2023.01.04
(0)
개발 지식/HTTP 지식

🌐 2XX (Successful) 상태 코드 - 총정리 모음

2XX Success 2xx 번대의 상태 코드들은 요청이 정상적으로 처리되었다는 의미를 가진다. 단순히 요청에 대한 성공을 나타내지만, 클라이언트가 어떠한 행위에 대한 성공인지에 대한 것을 나타내기 때문에, 응답을 받고 클라이언트가 취할 행위를 결정하는데 중요하면서도 정말 자주 보게될 상태 코드일 것이다. 200 OK OK ⇢ 클라이언트의 요청을 서버가 정상적으로 처리 메세지 바디에는 HTTP 메서드에따라 각기 다른 요청된 리소스를 포함 GET : 리소스를 가져왔고 메시지 바디에 들어있음 POST : 리소스가 명시하는 행동의 결과가 메시지 바디에 들어있음 PUT : 200 OK (수정 완료) / 201 Created (수정할 개체가 없어 새로 업로드) DELETE : 200 OK (삭제 완료) / 204..

category_image
인파_
2023.01.03
(0)
개발 지식/HTTP 지식

🌐 1XX (Informational) 상태 코드 - 총정리 모음

1XX Informational 1xx 번대의 상태 코드들은 요청이 수신되어 처리 중이라는 의미를 가진다. 다만 협업에서도 잘 사용되지 않는 상태코드이기 때문에 깊게 다뤄지는 편은 아니다. + 103 Early Hints 추가 100 Continue Continue ⇢ 처리가 되었으니 다음으로 진행하라는 응답코드 클라이언트가 서버에 본문을 전송하기 전에, 서버가 받아들일 것인지 확인하려고 할 때 그 확인 작업을 최적화하기 위한 의도로 도입된 것 100 응답을 받기위해선 클라이언트에서 expect 헤더를 넣어줘야 함 📍 100 상태코드 흐름 예시 클라이언트 : 서버에게 expect 헤더를 포함해 POST 요청을 보냄 서버 : 100 Continue 를 응답함 (만일 에러가 발생한다면 417로 응답) 서버 ..

category_image
인파_
2023.01.02
(0)
개발 지식/HTTP 지식

🌐 웹 서버 HTTP Redirection 선택 전략 지침

웹서버 리다이렉션 전략 지침 3XX 상태 코드는 단순히 숫자의 의미를 떠나서 브라우저를 하여금 페이지 이동 행위를 하게 하기 때문에, 언제 어느때에 서버가 클라이언트에게 무슨 상태 코드를 보내서 적절하게 리다이렉션을 요구할지에 대해 전략 지침이 필요하다. 만일 올바르지 않은 리다이렉션을 할 경우 홈페이지에 대한 사이트 랭크나 SEO 점수에 영향이 갈 수 있다. 따라서 웹 서버에서 3XX 상태 코드를 사용하여 요청을 리다이렉트할 필요성이 있을 경우, 어느 상황에 어느 리다이렉트 상태 코드를 사용할지에 대한 간단한 전략 지침을 소개해 본다. 1. 영구히 리소스가 옮겨진 경우 도메인을 변경하거나 등 기존 사이트가 완전히 새로운 위치로 옮길 경우 301 Moved Permanetly 사용 (영구 리다이렉트) 2..

category_image
인파_
2022.12.29
(0)
개발 지식/HTTP 지식

🌐 웹 브라우저의 Cookie 헤더 다루기

웹 브라우저의 Cookie 란? 웹브라우저에서 쿠키(Cookie)란 서버가 사용자의 웹 브라우저에 전송하는 작은 데이터 조각으로, key=value 형식의 문자열 데이터 묶음이다. 브라우저는 이 문자열 데이터 조각들을 저장해놓았다가 동일한 서버에 재 요청시 쿠키 데이터를 전송할 수 있다. HTTP 프로토콜은 기본적으로 Stateless 한 속성을 가지고 있기 때문에, 서버와 클라이언트 간의 연결 유지를 구현하기 위해서 서로를 인식할수 있는 식별 d데이터가 필요해졌고 그것이 쿠키 데이터 조각이라고 보면 된다. 쿠키의 어원은 1994년, 넷스케이프 개발자 루이 J. 몬툴리(Louis J. Montulli)가 고안했는데, 유닉스 프로그래머들이 프로그램 수신 후 변경하지 않고 반환하는 데이터의 패킷을 '매직 쿠..

category_image
인파_
2022.12.28
(0)