一、基本概念
1、请求:指浏览器端通过HTTP协议发送给服务器端的数据;
2、响应:指服务器端接收到请求后做响应的处理之后,再回复给浏览器端的数据;
二、请求
1、请求的组成
分为四大部分:起始行、请求头(headers)、空行(用于提醒服务端,后面没有headers的数据了)、请求体(body)。样例:
2、请求常用的方法。
注:HEAD方法在调试模式中经常使用,类似于get请求,只不过返回的响应中没有具体的内容,用于获取响应头。
3、Django中的请求
(1)请求在Django中实则就是视图函数的参数HttpRequest,即HttpRequest对象。
(2)Django接收到http协议的请求后,会根据请求数据报文创建HttpRequest对象。
(3)HttpRequest对象通过属性描述了请求的所有相关信息。常用的HttpRequest对象属性如下:
- path_info:URL字符串
- method:字符串,表示HTTP请求方法,常用值:‘GET’、‘POST’
- GET:QueryDict查询字典的对象,包含get请求方式的所有数据
- POST:QueryDict查询字典的对象,包含post请求方式的所有数据
- FILES:类似于字典的对象,包含所有的上传文件信息
- COOKIES:python字典,包含所有的cookie,键和值都为字符串
- session:类似于字典的对象,表示当前的会话
- body:字符串,请求体的内容(POST或PUT)
- scheme:请求协议(‘http/https’)
三、响应
1、响应的组成
2、响应常用的HTTP状态码
3、Django中的响应对象
(1)构造函数格式:HttpResponse(content=响应体,content_type响应体数据类型,status=状态码)
作用:向客户端浏览器返回响应,同时携带响应体内容。
(2)常用的Content-Type如下:
- -‘text/html’ (默认的,html文件)
- -'text/plain'(纯文本)
- -'text/css'(css文件)
- -'text.javascript'(js文件)
- -'multipart/form-data'(文件提交)
- -'application/json'(json传输)
- -'application/xml'(xml文件)
(3)HttpResponse子类,这些子类需要单独导入。