请求和响应-定义
- 请求是指浏览器端通过HTTP协议发送给服务器端的数据
- 响应是指服务器端接收到请求后做出相应的处理再回复给浏览器端的数据
请求
- 根据HTTP标准,HTTP请求可以使用多种请求方法
- HTTP1.0定义了三种请求方法:GET,POST和HEAD方法(最常用)
- HTTP1.1新增了五种请求方法:OPTIONS,PUT,DELETE,TRACE和CONNECT方法
- 请求在Django就是视图函数的第一个参数,即 HttpRequest 对象
- Django接收到http协议的请求后,会根据请求数据报文创建 HttpRequest 对象
- HTTPRequest 对象通过属性描述了请求的所有相关信息
- path_info: URL 字符串
- method:字符串,表示HTTP请求方法,常用值:'GET'、'post'
- GET:QueryDicet查询字典的对象,包含get请求方式的所有数据
- POST:QueryDict查询字典的对象,包含post请求方式的所有数据
- FILES:类似于字典的对象,包含所有的上传文件信息
- COOKIES:Python字典,包含所有的cookie,键与值都为字符串
- session:类似于字典的对象,表示当前的会话
- body:字符串,请求体的内容(POST或PUT)
- scheme:请求协议("http/https")
- request.get_full_path():请求的完整路径
- request.META:请求中的元数据(消息头)
- request.META['REMOTE_ADDR']:客户端IP地址
响应状态码
- 常见的HTTP状态码
200:请求成功
301:永久重定向(资源网页等被永久转移到其他URL)
302:临时重定向
404:请求的资源网页等不存在
500:内部服务器错误
HTTP状态码由三个十进制数字组成,第一个十进制数字定义了状态码的类型,后两个数字没有分类的作用。HTTP状态码共分为5种类型:
响应对象
- 构造函数格式:
HttpResponse(content = 响应体,content_type = 响应体数据类型,status = 状态码)
- 作用:向客户端浏览器返回响应,同时携带响应体内容
- 参数
content:表示返回的内容
status_code:返回的HTTP响应状态码
content_type:指定返回数据的MIME类型(默认为"text/html"。浏览器会根据这个属性,
来显示数据。如果是text/html,那么就会解析这个字符串,如果text/plain,那么就会显示一个纯文本)
- 常见的Content_Type如下
"text/html"(默认的,html文件)
"text/plain"(纯文本)
"text/css"(css文件)
"text/javascript"(js文件)
"multipart/form-data"(文件提交)
"application/json"(json传输)
"application/xml"(xml文件)