学习笔记,仅供参考
响应
HTTP响应
当浏览者访问一个网页时,浏览者的浏览器会向网页所在服务器发出请求。当浏览器接收并显示网页前,此网页所在的服务器会返回一个包含HTTP状态码的信息头(server header),用以响应浏览器的请求。
HTTP状态码
HTTP状态码的英文为HTTP Status Code
常见的HTTP状态码
- 下面是常见的HTTP状态码
- 200一请求成功
- 301一资源(网页等)被永久转移到其它U RL
- 404一请求的资源(网页等)不存在
- 500一内部服务器错误
HTTP状态码分类
HTTP状态码由3个十进制数字组成,第1个十进制数字定义了状态码的类型,后2
个数字没有分类的作用,HTTP状态码共分为5种类型:
分类 | 分类描述 |
---|---|
1## | 服务器收到请求,需要请求者继续执行操作 |
2## | 成功,操作被成功接收并处理 |
3## | 重定向,服务器需要进一步的操作以完成请求 |
4## | 客户端错误,请求包含语法错误或无法完成请求 |
5## | 服务器错误,服务器在处理请求的过程中发生了错误 |
Django中的响应对象HttpResponse
- 构造函数格式
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文件)
其它HttpResponse响应对象
响应对象 | 含义 | 状态码 |
---|---|---|
HttpResponseRedirect | 重定向 | 301 |
HttpResponseNotModified | 未修改 | 304 |
HttpResponseBadRequest | 错误请求 | 400 |
HttpResponseNotFound | 没有对应的资源 | 404 |
HttpResponseForbidden | 请求被禁止 | 403 |
HttpResponseServerError | 服务器错误 | 500 |
举个例子
views.py
def page_test01(request):
return HttpResponseNotFound("网页找不到啦...")
def page_test02(request):
return HttpResponseRedirect("http://www.baidu.com/")
urls.py
urlpatterns = [
path('admin/', admin.site.urls),
re_path(r'test1/', views.page_test01),
re_path(r'test2/', views.page_test02),
]
向http://127.0.0.1:8000/test1/发起请求:
网页找不到,响应码为404
向http://127.0.0.1:8000/test2/发起请求:
服务器重定向到百度https://www.baidu.com/