HTTP POST 요청을 사용하여 IoT 웹 서버에 데이터 저장

HTTP POST 요청을 사용하여 IoT 웹 서버에 데이터 저장

HTTP POST 요청을 사용하여 IoT 웹 서버에 데이터 저장

IoT 웹 서버HTTP POST IoT 웹 서버MySQL 데이터베이스. IoT 웹 서버PHP 언어 IoT 웹 서버

시리즈의 첫 번째 기사에서 설명했듯이 사물 인터넷 장치에서 얻은 데이터 저장, 저장된 데이터는 결국 서버에 남지만 MySQL의 o MariaDB 그리고 언어가 사용된다 PHP 입력과 출력에서 ​​정보를 조작하기 위해 전자 장비와 데이터베이스 사이의 정보 흐름은 다음을 사용하여 발생합니다. 웹 서버 귀하가 다음에 따라 통신하는 사람 HTTP 프로토콜.

정의의 시작 부분에서 HTTP 프로토콜 설명된 것과 비슷한 용도가 있었지만 사실은 결국 다양한 이유로 완전히 활용되지 못했다는 것입니다. 부분적으로는 보안이고 부분적으로는 더 구체적이거나 더 효율적인 프로토콜을 정의하는 데 진전이 없었기 때문입니다. 공용 서버에서 가장 일반적인 것은 연결을 사용하는 것입니다. HTTP 무엇이 만드는가? POST 요청 정보를 저장하기 위해 서버에 바로 이를 복구하기 위해 일반적으로 이를 제공하고 상호 작용할 수 있는 웹 페이지를 표시합니다.

요청 시 서버로 전송되는 가장 기본적인 텍스트 HTTP POST 요청 유형이 포함된 행이 포함됩니다(POST) 정보와 버전을 저장할 웹 페이지의 경로 HTTP 프로토콜; 호스트 이름이 있는 다른 줄(동일한 서버 및/또는 동일한 IP 주소에 있는 가상 서버를 허용함) 마지막으로 기록된 데이터를 포함하는 다른 줄은 & 기호로 서로 구분되고 이전 줄과 1로 구분됩니다. 공백.

위의 예에서 polaridad.es라는 서버는 버전 1.1을 사용하여 정보를 관리하기 위해 /iot/grabar_temperatura에 페이지를 포함합니다. HTTP 프로토콜

2개의 & 기호가 사용된 것을 볼 수 있는데 이는 3개의 필드가 저장되어 있음을 나타냅니다. 필드 이름은 등호 왼쪽에 있으며 이를 정의하는 데 두 글자만 사용되었습니다. 요청의 필드(또는 원하는 경우 변수)의 이름 HTTP 이는 데이터베이스의 내용과 관련이 없으며 설명 텍스트를 사용하는 것이 특별히 중요하지 않으며 서버와 통신하는 텍스트를 저장하고 데이터 전송 프로세스 속도를 높이기 위해 일반적으로 짧은 이름(짝수 필드)이 선택됩니다.

IoT 장치가 일반적으로 서버에 보내는 데이터는 숫자 유형이며 주로 정수와 단순 소수입니다. 예제의 변수 "ne"의 경우와 같이 값이 텍스트 형식으로 전송되는 경우 경우에 따라 어느 정도 성공하고 쉽게 해결할 수 있는 불리한 상황이 발생할 수 있습니다. 이 경우 더하기 기호(+)는 단어를 구분하는 데 사용되며 그렇지 않으면 단어를 변경하는 공백을 대체합니다. POST 요청. 대부분의 경우를 해결하는 일반적인 데이터 전송 방법은 백분율 기호(%) 뒤에 문자의 16진수 코드를 표시하는 것입니다. 논리적으로 인코딩된 내용이 문제가 되는 경우를 제외하고는 이 리소스를 사용하는 것이 바람직하지 않습니다. 전송되는 양이 늘어나므로 크기는 확실히 작지만 일반적으로 더 많은 리소스가 필요합니다.

운영이 가능하지만 웹 서버 이전 예의 정보만 사용하는 사물 인터넷의 경우 많은 서버, 특히 공개 서버에서는 POST 쿼리에 다른 데이터를 추가합니다(안타깝게도 항상 프로토콜에 국한되지는 않습니다.) 아래 예는 우물에서 요청한 post 요청에 해당합니다. -알려진 서버. 사물 인터넷을 위한 공개 씽스피크.

다음과 같은 일부 개인정보 외에도 X-THINGSPEAKAPIKEY (각 클라이언트의 식별자에 해당) 이전 예에서는 요청에 더 많은 정보를 추가하는 다른 헤더가 있음을 알 수 있습니다.

헤더를 사용하는 방법 POST 요청 이름, 콜론 기호(:), 공백 및 할당하려는 값을 작성하는 것으로 구성됩니다.

다른 구성 요소의 구성을 완료하기 전에 웹 서버에 대한 POST 요청을 테스트하기 위해 서버에 대한 연결을 설정하고 데이터를 수동으로 보낼 수 있습니다. 예를 들어 Linux 컴퓨터에서는 다음을 사용하는 것으로 충분합니다. telnet polaridad.es 80 여기서 polaridad.es는 서버 이름이고 80은 서비스가 응답하는 포트 번호입니다. HTTP.

IoT 데이터를 저장하기 위해 텔넷을 사용하여 polaridad.es 웹 서버에 연결합니다.

크로스 플랫폼 도구는 Linux, Windows 또는 OS에서 사용할 수 있습니다. 퍼티, 기사에서 이야기 된 컴퓨터에서 UART 직렬 장치 제어, 콘솔을 사용하지 않고 연결합니다.

PuTTY를 사용하여 polaridad.es 웹 서버에 연결하여 IoT 데이터 저장

다음에 HTTP 헤더 목록 대부분의 경우 유용하게 사용할 수 있는 것들이 있습니다. POST 요청 ~에 웹 서버 사물 인터넷을 위해.

  • Accept 종류를 나타내는 데 사용됩니다. 마임 요청은 서버가 응답에 사용할 것으로 예상합니다. 다음과 같이 표현됩니다. tipo/subtipo 별표(*)를 와일드카드 기호로 사용하여 일반화할 수 있습니다. 예를 들어 다음과 같습니다. */* 어떤 것을 언급하거나 tipo/* 모든 하위 유형을 참조하려면 tipo

    가장 일반적으로 사용되는 것은 다음과 같습니다.

    • text/plain 가장 기본적이지만 가장 많이 사용되는 방법이기도 합니다. 서버는 거래가 정확했음을 알리기에 충분한 간단한(일반) 텍스트 응답을 반환하고 기껏해야 기록된 데이터의 주문 번호, 비교 결과, 거래 날짜와 같은 추가 정보를 추가할 것으로 기대합니다. 섬기는 사람…

    • application/xml o text/xml 서버가 형식의 요청에 응답할 때까지 기다립니다. XML. 선택의 의미 text 대신 application "인간"("자동"과 비교) 읽기가 더 쉬워집니다. 이 이중성은 다른 사람들에게도 나타날 것입니다 MIME 유형 하지만 표준의 미래 추세는 선호하는 것입니다. application 앞에 text 형식 XML 많은 데이터를 포함하는 응답을 매우 견고한 방식으로 구성할 수 있지만 단점은 순 데이터에 많은 인공물을 추가하여 응답이 필요 이상으로 차지하므로 더 많은 대역폭과 아마도 더 많은 대역폭이 필요하다는 것입니다. 이를 처리하기 위해 IoT 장치의 메모리에 저장됩니다.

    • text/html 서버 응답이 다음과 같을 때 사용됩니다. HTML 일반적으로 응답 형식을 지정하는 일반 텍스트(일반 텍스트)로 인코딩됩니다. 데이터를 저장하는 것에 관한 것이고 응답은 리소스가 많지 않은 작은 장치에 도달하므로 이 유형을 사용하는 것은 일반적이지 않습니다.

    • application/xhtml+xml 기본적으로 버전입니다 XHTML (HTML 으로 XML 유효함) 이전 섹션의 정보를 참조하세요.

    • application/json 이는 서버 응답에 다소 복잡한 구조를 포함한 여러 데이터가 포함될 때 가장 많이 사용됩니다. 형식 JSON 형식으로 공유 XML 탄탄한 구조와 그 구조로 인해 추가된 텍스트가 더욱 간결해지는 장점을 더해줍니다.

  • Accept-Charset 응답에 사용되도록 요청된 텍스트 인코딩을 결정합니다. 라틴 문자를 인코딩하려면 UTF-8, 가장 완벽한, ISO-8859 15, 여기에는 유로 기호(€)와 ISO-8859 1, 가장 기본적인 것입니다.

  • Accept-Encoding 서버 응답을 인코딩할 수 있는 형식을 나타냅니다. 기본적으로 압축 유형을 나타내는 역할을 합니다. 가장 빈번한 것 중 일부는 다음과 같습니다. gzip deflate (더 자세히 지정할 수 있습니다. deflate-raw o deflate-http) 이러한 유형의 장비에서는 일반적으로 부족한 리소스(메모리 및 처리 시간)를 일정하게 소비해야 하기 때문에 사물 인터넷에 연결된 소형 장치에 사용하는 것은 일반적이지 않습니다. 압축이 사용되지 않음을 나타낼 필요는 없습니다. Accept-Encoding: identity 그러한 상황은 기본적으로 고려되기 때문입니다.

  • Accept-Language 답변에 사용할 수 있는 언어를 표현합니다. 예를 들어 스페인의 스페인어는 다음과 같이 지정됩니다. es-ES 또는 미국의 영어 en-US

  • Connection 클라이언트(IoT 장치)와 IoT 장치 사이에 설정된 연결로 수행해야 할 작업을 지정하는 데 사용됩니다. 웹 서버 일단 데이터가 수신되면. 일반적으로 값과 함께 사용됩니다. close 형식으로 Connection: close 클라이언트에 응답한 후 연결을 닫아야 함을 나타냅니다.

  • Content-Length 이를 통해 데이터가 포함된 요청 부분이 차지하는 바이트 수를 나타낼 수 있습니다. 이 부분은 헤더 다음이고 빈 줄로 구분됩니다. 이는 전송된 정보의 무결성을 확인하는 역할을 하기 때문에 매우 유용합니다. 선언된 내용을 측정하지 못한 경우에는 제대로 도착하지 않은 것으로 간주되어 저장되지 않습니다. 일반적으로 대부분의 공용 IoT 서버에 필요합니다.

  • Content-Type 을 나타내는 역할을 합니다. MIME 유형 서버로 전송되는 정보가 인코딩됩니다. 일반적으로 사용되는 유형 text/html 서버로 전송된 데이터를 간단한 값 목록으로 표현하는 경우(예: a=3.6&b=4.8) 그리고 application/jsonrequest (이는 다음 유형과 동일합니다. application/json 에서 이야기되는 것 Accept) 더 복잡한 구조가 필요하지만 다음 중 하나를 보낼 수 있는 경우 MIME 유형 목록.

  • Cookie 이는 특정 관련 데이터를 전송하기 위해 사용하는 단일 요청보다 더 복잡하지만 서로 다른 시간에 획득되는 전송 체인(쿼리, 응답, 쿼리...)을 유지하는 데 사용되는 세션 식별자를 추가하는 데 사용됩니다.

  • 목차
    • Referer POST 요청을 시작한 URL(예: 요청이 전송된 웹 페이지) IoT용으로 사용하는 경우에는 이전 페이지 없이 바로 정보를 보내기 때문에 관련 정보를 추가하지 않아 자주 사용되지는 않습니다.

    • User-Agent 요청을 수행하는 장치를 보고합니다. 일반적인 웹 트래픽에서는 사물 인터넷에 사용되는 브라우저를 통해 서버가 요청하는 전자 장치의 유형을 나타낼 수 있습니다. 서버에 자신을 식별하면 응답 형식을 각 경우에 다르게 지정할 수 있습니다. 예를 들어 복잡한 웹 페이지를 브라우저에 반환하고 몇 가지 경고 데이터를 소형 IoT 장치에 반환합니다.

    여러 다른 값이 동시에 지원된다는 것을 나타내기 위해 헤더에 단일 값 대신 쉼표로 구분된 옵션 목록을 지정할 수 있습니다. 이러한 값은 각 값에 대한 품질 계수 q에 따라 표현되는 우선순위를 가질 수 있습니다. 품질 계수는 세미콜론(;)으로 구분되며 별표(*)는 모든 유형이나 하위 유형을 나타내는 데 사용될 수도 있습니다.

    Accept: text/plain,text/xml,application/json;q=0.8,text/*;q=0.9,application/json

    이전 예에서는 형식의 우선순위가 JSON 가장 큰 값(0.9)은 일반 텍스트와 서식 있는 텍스트입니다. XML, 사양을 충족하는 text/*는 더 작고(0.8) 둘 사이에 동일합니다. 가능하다면 서버는 응답을 다음과 같이 인코딩하여 반응해야 합니다. JSON.

    보다 완전한 POST 요청의 다음 예에서는 polaridad.es라는 서버의 /iot/grabar_temperatura 페이지가 HTTP 프로토콜 버전 1.1을 사용하여 액세스됩니다. Sensoreitor-2000이라는 클라이언트는 인코딩된 데이터를 다음과 같이 보냅니다. JSON, 응답은 일반 텍스트 형식으로 예상됩니다. UTF-8 그런데 압축을 사용하지 않고 스페인에서 스페인어를 사용하는데, 이는 표시할 필요가 없습니다. 서버로 전송되는 데이터는 65바이트를 차지합니다. 응답을 보낼 때 클라이언트와 서버 간의 연결이 닫힙니다.

    다음 기사에서는 설명합니다. IoT 객체가 보낸 정보를 저장하도록 MySQL 데이터베이스를 구성하는 방법

    코멘트 남기기

    당신은 놓쳤을 수도 있습니다