请求
请求的方法
序号 | 方法 | 描述 |
---|---|---|
1 | GET | 请求指定的页面信息,并返回实体主体 |
2 | HEAD | 类似于get请求,只不过返回的响应中没有具体的内容,用于获取报头 |
3 | POST | 向指定资源提交数据进行处理请求(例如提交表单)。数据被包含在请求体中。POST请求可能导致新的资源的建立和/或已有资源的修改 |
4 | PUT | 从客户端向服务器传送的数据取代指定文档的内容 |
5 | DELETE | 请求服务器删除指定的页面 |
6 | CONNECT | HTTP/1.1协议中预留给能够连接改为管道方式的代理服务器 |
7 | OPTIONS | 允许客户端查看服务器的性能 |
8 | TRACE | 回显服务器收到的请求, 主要用于测试或者诊断 |
HttpRequest对象
服务器接收到http协议的请求后,会根据报文创建HttpRequest对象,这个对象不需要我们创建,直接使用服务器构造好的对象就可以。视图的第一个参数必须是HttpRequest对象,在django.http模块中定义了HttpRequest对象的API。
属性:
- path_info :URL字符串,表示请求的页面的完整路径,不包含域名和参数部分。
- method:一个字符串,表示请求使用的HTTP方法,常用值包括:‘GET’、‘POST’。
- 在浏览器中给出地址发出请求采用get方式,如超链接。
- 在浏览器中点击表单的提交按钮发起请求,如果表单的method设置为post则为post请求。
- GET:QueryDict类型对象,类似于字典,包含get请求方式的所有参数。
- POST:QueryDict类型对象,类似于字典,包含post请求方式的所有参数。
- FILES:一个类似于字典的对象,包含所有的上传文件。
- COOKIES:一个标准的Python字典,包含所有的cookie,键和值都为字符串。
- session:一个既可读又可写的类似于字典的对象,表示当前的会话,只有当Django 启用会话的支持时才可用。
- body:字符串,请求体的内容(POST或PUT)
- scheme: 请求协议(‘http’/‘https’)
- get_full_path():请求的完整路径
- META:请求中的元数据(消息头)
- reques.META[‘REMOTE_ADDR’]:客户端IP地址
响应状态码
常见的:
- 200 -请求成功
- 301 - 永久重定向-资源(网页等)被永久转移到其他URL
- 302 - 临时重定向
- 404 - 请求的资源(网页等)不存在
- 500 - 内部服务器错误
http状态码类型:
分类 | 分类描述 |
---|---|
1** | 信息,服务器收到请求,需要请求者继续执行操作 |
2** | 成功,操作被成功接受并处理 |
3** | 重定向,需要进一步的操作以完成请求 |
4** | 客户端错误,请求包含语法错误或无法完成请求 |
5** | 服务器错误,服务器在处理请求的过程中发生了错误 |
响应对象
构造函数格式:
HttpResponse(content = 响应体, content_type =响应体数据类型 ,status = 状态码)
作用:向客户端浏览器返回响应,同时携带响应体内容
常见的content-type:
- ‘text/html’ 默认的,HTML文件
- ‘text/plain’ 纯文本
- ‘text/css’ CSS文本
- ‘text/javascript’ js文件
- ‘multipart/form-data’ 文件提交
- ‘application/json’ JSON传输
- ‘application/xml’ xml文件
HttpRequest子类
类型 | 作用 | 状态码 |
---|---|---|
HttpRequestRedirect | 重定向 | 302 |
HttpRequestNotModified | 未修改 | 304 |
HttpRequestBadRequest | 错误请求 | 400 |
HttpRequestNotFound | 没有对应的资源 | 404 |
HttpRequestForbidden | 请求被禁止 | 403 |
HttpRequestServerError | 服务器错误 | 500\ |