将数据从设备发送到服务器的最佳方式是什么?

将数据从设备发送到服务器的最佳方式是什么?

问题描述:

我有一个应用程序,其中设备将数据发送到我的应用程序并且应用程序存储数据。
我的问题是什么是从设备发送数据到服务器的最佳方式?
设备可以是智能手机。
现在我有一些像这样的数据一起发送URL请求:
将数据从设备发送到服务器的最佳方式是什么?

www.example.com:8888/Data/?id=12345&name=john&DOB=25-09-1974 

我与Django的GET请求获取数据,然后保存数据。这是正确的吗?或者我应该遵循一些其他过程?

P.S数据不敏感。我的意思是安全不是一个问题。

+0

怎么样JSON编码'HTTP请求POST'? – Latheesan

+0

我可以做POST也是它的Like GET,但更安全。对 ?我在想像套接字编程。 – Stark

+1

我之前完成过套接字客户端/服务器,这对于这件事来说是一种矫枉过正,可能很难。如果信息不敏感,我会坚持使用JSON编码的HTTP帖子。如果你使用'GET',你将受到服务器强加的最大查询字符串大小限制的限制,其中POST有更大的限制。 – Latheesan

您不应该通过“GET”将数据上传到服务器。这就是“POST”方法的用途。

根据HTTP/1.1规格:

POST方法用于请求源服务器接受括在所述请求由请求 - 标识的资源 的新下属的 实体请求行中的URI

换句话说,POST用于创建。

如果您认为您的数据敏感或不敏感,则无关紧要。通过实施一种方法来更改服务器上的数据,您会自动提供一种可被任何人滥用的方式。因此,所有这些接口都必须在安全性方面进行相同的彻底处理。

你的问题没有提供任何关于你想要传输的数据。您是要将其永久存储在数据库中,还是仅在用户访问期间与用户相关的数据?

基本上你是提供了三种方式:

1.持久性存储。

您将数据存储在数据库中。 在这种情况下,您应该使用上述“后”方法的形式。

#your_template.html 
<form method="post" action="<your action"> 
<!-- do something --> 
{{ form }} 
</form> 

#your_view.py 
def your_view(request): 
    if request.method == 'POST':   
     form = YourForm(request.POST) 
     if form.is_valid(): # All validation rules pass 
      # Process the data in form.cleaned_data 
      # ... 
      return HttpResponseRedirect('/thanks/') # Redirect after POST 
    else: 
     form = YourForm() # An unbound form 

    return render(request, 'your_template.html', { 
     'form': form, 
    }) 

约django的更多信息,参见https://docs.djangoproject.com/en/dev/topics/forms/形成

2.临时存储。

您不需要持久存储任何这些结果,因此您可以使用django的会话机制,这将允许您在特定用户访问您的页面时传递恰好有效的数据。您可以调整生活会话的时间对象

更多信息请参见https://docs.djangoproject.com/en/dev/topics/http/sessions/关于Django的会话基于

3.客户端存储。 一路走到客户端,使用将存储在客户端机器上的cookies,并且只能由服务器读取。但是在评估cookie值时你必须更加彻底。

Django Cookies, how can I set them?一小饼干帮手Django和从那里

+0

好的。所以我会用POST而不是GET,但它是我正在做的最佳方法吗? – Stark

+1

邮政是最好的方法,是的。其目的是将数据传输到服务器。请注意,您不会将帖子看到您的网址。所有你会看到的是www.example.com:8888/Data/而不是www.example.com:8888/Data/?id=12345&name=john&DOB=25-09-1974 –

+0

@谢谢你的解释。我很感激。 :d – Stark