HTTP协议和json数据

1 HTTP简介与应用场景

1.1 报文结构的介绍与分析★★ ★★

用于HTTP协议交互的信息被称为HTTP报文,请求端的HTTP报文叫请求报文,响应端的叫响应报文。

HTTP报文是由报文头部、空行、报文主体组成的。

在这里插入图片描述

1、请求报文

HTTP请求报文由:请求行、请求头部、空行、请求体组成

例如:

GET / HTTP/1.1 				#请求行
Host: www.enjoytoday.cn		#请求头
Connection: keep-alive
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.84 Safari/537.36
Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Referer: http://www.enjoytoday.cn/posts/326
Accept-Encoding: gzip, deflate, sdch
Accept-Language: zh-CN,zh;q=0.8
Cookie: bdshare_firstime=1466032270994;
JSESSIONID=ADBC8C3DADF6C815D778450C193C6637.ajp13_worker; 
 						   #空格
username=hfcai&sex=man    #请求体

2、响应报文

HTTP响应报文由 响应行(HTTP版本、状态码、状态消息)、响应头部、空行、响应体4个部分构成

在这里插入图片描述

1.2 请求方式的介绍以及应用场景★★★

HTTP协议定义了很多的请求方法,来满足不同的需求

序号方法描述其他
1GET向接口发送请求,获取信息很常用
2POST向接口提交数据,常用来做添加功能很常用
3PUT向接口提交更新数据,用来做更新功能常用
4DELETE想接口发起删除请求,用来做删除功能常用
5HEAD类似于GET请求,只用于获取报头信息不常用

相应的在视图中也要写对应请求的处理方法,例如:

 class BookView(View):
        
    def get(self, request):  #处理 GET请求
        pass

    def post(self, request): #处理 POST请求
        pass

    def put(self, request):  #处理PUT请求
        pass
    
    def delete(self,request): #处理DELETE请求
        pass

以上是对HTTP请求的方式做了介绍,接下来我们继续学习 HTTP的响应部分

1.3 常见状态码以及代表的错误信息★★★

客户端发起HTTP请求,那服务端收到了请求以后需要作出响应。

这个响应可能是成功的,也可能是失败的。

HTTP协议已经制定好了一套数字来表示 响应状态,我们成为HTTP状态码

状态码非常多,可以参考 HTTP教程:https://www.w3.org/Protocols/rfc2616/rfc2616.html

常用的几个状态码

状态码描述
200请求成功,返回成功的响应响应成功
204无内容。服务器成功处理,但未返回内容。在未更新网页的情况下,可确保浏览器继续显示当前文档响应成功
301永久移动,请求的资源已被永久的移动到新URI重定向
302临时移动。与301类似。但资源只是临时被移动。客户端应继续使用原有URI重定向
304未修改。所请求的资源未修改,服务器返回此状态码时,不会返回任何资源重定向
400客户端请求的语法错误,服务器无法理解客户端错误
401请求要求用户的身份认证客户端错误
403服务器理解客户端的请求,但是拒绝执行此请求客户端错误
404服务器无法根据请求找到对应资源,一般是请求路径出现 ·错误客户端错误
500服务器内部错误,无法完成请求服务端错误
504服务器作为网关或代理,未及时从远端服务器获取请求服务端错误
505服务器不支持请求的HTTP协议,无法完成处理服务端错误
1.4 浏览器的使用方法★★★★

首先先学习一下,如何通过浏览器 这个主要的Web客户端来查看请求与响应。这里以Google浏览器为案例进行讲解演示。

通过快捷键F12 ,或者右键–>查看 打开调试窗口:

在这里插入图片描述

可以通过浏览器 清晰看到 我们的HTTP请求报文、HTTP响应报文,在以后的学习中,会经常通过浏览器来查看我们的网络请求与响应。

1.5 postman的使用方法★★★★

Postman是一款功能强大的Web接口和HTTP请求的调试工具。可以发送HTTP支持的任何请求,可以携带各种数据参数。当我们的接口开发完毕后,就可以使用postman这一工具进行调试。

在这里插入图片描述

如上所示,我们可以通过postman进行网络请求,可以携带参数、获取响应信息,支持各种请求方式,代替浏览器完成更多的功能。

2 json数据结构与使用方法

首先我们先认识一下什么是json。json的全称是”JavaScript Object Notation”,表示是JavaScript对象表示法,它是一种基于文本,独立于语言的轻量级数据交换格式。

2.1 json的数据结构★★★★

json有两种表示结构,对象和数组,对应到我们的python语言就是字典与列表。

基本元素:一对key:value构成json的基本元素,元素之间逗号隔开,且json中字符串必须是双引号

对象:一对{}括起来的就是一个json对象,类似于我们的字典。

单对象案例:

    {
        "id": 3,
        "name": "绿色食品"
    }

json中,key对应的value值可以是整型、字符串等基本类型,也可以是一个对象类型

{
    "id": 3,
    "name": "绿色食品"
    "info":{
    	"address":"产自北京市平谷区",
    	"company":"大自然有限公司"
    }
}

数组:一对[]括起来的就是一个json数组,类似我们的列表。

[
    {
        "id": 3,
        "name": "绿色食品"
    },
    {
        "id": 4,
        "name": "鞋子"
    }
]
2.2 json数据的页面响应★★★

Django提供了专门用来返回JsonResponse的响应类,我们可以通过这个类来返回我们的json数据

1、返回json单个对象,可以直接把一个字典作为参数传递给JsonResponse使用

from django.http.response import JsonResponse


class ProductView(View):

    def get(self, request):

        book1 = {"name": "Java", "price": "66", "author": "Mrs.Fan"}

        return JsonResponse(book1)python

2、返回一个json数组案例

from django.http.response import JsonResponse


class ProductView(APIView):

    def get(self, request):

        book1 = {"name": "Java", "price": "66", "author": "Mrs.Fan"}
        book2 = {"name": "C", "price": "77", "author": "Mrs.Li"}
        book3 = {"name": "Python", "price": "88", "author": "Mrs.Liu"}
        books = [book1, book2, book3]

        return JsonResponse(books,safe=False)

这里注意的是 JsonResponse 如果传递的参数是一个列表,则需要传参safe=False。

3、使用postman进行json案例测试

在这里插入图片描述

如上,是用postman工具进行测试,返回我们的json数据。

  • 3
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: JSON数据交互是一种轻量级的数据交换格式,它使用简单的文本格式来描述数据对象,易于阅读和编写,同时也易于解析和生成。在Web应用程序中,JSON数据交互通常用于客户端和服务器之间的数据传输。 RESTful支持是指一种基于REST原则的Web服务架构,它使用HTTP协议中的GET、POST、PUT、DELETE等方法来实现对资源的操作。RESTful支持可以使Web应用程序更加灵活、可扩展和易于维护,同时也可以提高Web应用程序的性能和安全性。 ### 回答2: JSON是一种轻量级的数据交换格式,它可以把结构化的数据以一种简洁清晰的方式进行表达和传输。而在前后端数据交互中,JSON也成为了一个非常重要的格式。因为其具有易读、易写、易扩展的特点,而且可以和大部分编程语言轻松实现互转。因此,现在绝大多数的前后端数据交互都采用了JSON格式。 而RESTful作为一种基于HTTP协议的分布式系统的架构风格,也是一种常见的前后端数据交互方式。RESTful通过HTTP协议提供了一组标准的API,用于实现客户端与服务端之间的数据交互。同时,符合RESTful架构风格的API也具有可伸缩性、可读性、可维护性等特点,使得它被广泛用于构建Web服务和构建前后端分离的应用开发中。 对于JSON和RESTful来说,它们的关系并不是相互依赖的。JSON数据交互并不必须使用RESTful架构风格,而RESTful架构风格的API也可以使用其它的数据格式进行数据交互。但是,由于JSON格式具有易读易写的特点,而RESTful架构风格又具有规范化的API设计风格,所以它们俩的结合使用可以使得前后端数据交互更加简洁清晰。 在使用RESTful架构风格的API进行前后端数据交互时,我们可以使用JSON格式作为数据交换的协议。通常情况下,数据交互都是使用HTTP协议进行通信的,而JSON格式则可以在HTTP协议上传输,同时也可以轻松的被前后端代码解析。因此,JSON和RESTful的结合使用,可以实现前后端数据交互的高效、规范、易用。 ### 回答3: JSON数据交换是一种轻量级的数据交换格式,由于其简洁性、易读性和易用性,正在Web服务中变得越来越流行。 此外,JSON结构比XML更紧凑,因此它可以更快地传输数据。 在Web应用程序中,JSON最常用于通过HTTP请求和响应进行数据传输。由于RESTful API是一种使用HTTP请求的Web服务,因此JSON常用于RESTful API中。 RESTful支持是指Web服务器软件支持RESTful API的功能,它可以提供更好的Web应用程序性能和更简单更易于维护的代码。 RESTful API依赖于HTTP请求和响应,因此支持RESTful的Web服务器软件可以通过优化HTTP响应来提高Web应用程序的性能。另外,RESTful API具有良好的可扩展性和灵活性,因此在开发Web应用程序时经常使用。 JSON数据交换和RESTful支持通常是一起使用的,因为JSON数据交换是RESTful API中传输数据的最常用方式之一。使用JSON和RESTful API,Web应用程序可以快速、轻量级地传输数据,并提供更好的性能和可扩展性。因此,开发Web应用程序时,应该使用这些技术来提高系统的性能和可维护性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值