WSGI 不同路径返回不同内容 & amp;HTTP 状态码 | 学习笔记

简介: 快速学习 WSGI 不同路径返回不同内容 & amp;HTTP 状态码

开发者学堂课程【Python 入门 2020年版:WSGI 不同路径返回不同内容 & amp;HTTP 状态码】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/639/detail/10483


WSGI 不同路径返回不同内容 & amp;HTTP 状态码

内容介绍

一、WSGI 不同路径返回不同内容

二、HTTP 状态码

 

一、WSGI 不同路径返回不同内容

代码:

from wsgiref.simple_server import make_server

def demo_app(environ,start_response):

path=environ[‘PATH_INFO’]

status_code=’200 OK’

if path == '/':

response =’欢迎来到我的首页'

elif path =='/test':

response = '欢迎来到test页面'

elif path == ‘/demo' :

response = '欢迎来到demo页面'

else:

status_code=’404 Not Found’

response = '页面走丢了’

start_response(‘status_code’,[(‘Content-Type,’text/html;charset=utf8’)])

return [‘response’.encode(‘utf8’)]

if_ name_=='_ main_ ':

httpd : make_server(‘’, 8080, demo_app):

sa = httpd.socket. getsockname()

print("Serving HTTP on", sa[0], "port", sa[1], "...")

httpd.serve_forever()  

默认状态码是 200,如果页码没有配置,返回 404

运行:

访问 127.0.0.1:8080/demo,显示欢迎来到 demo 页面

访问 127.0.0.1:8080/index,显示页面走丢了,状态码是 404

OK 和 Not Found 是可以改的,用户是看不到的,但在 network 里可以看到状态,一般访问页面 404 后都会跳转到页面走丢。

 

二、HTTP 状态码

状态码:RESTFUL==>前后端分离

1. 2xx:OK,请求响应成功

2. 3xx:重定向

如图示:

image.png

为什么它是 3 开头的呢,因为它其实是到了 404,但结果进行了跳转就变成 304了。

3. 4xx:客户端的错误。 404 客户端访问了一个不存在的地址 405:请求方式不被允许

4. 5xx:服务器的出错。

例:在欢迎来的我的首页加个 1/0,这个地方服务器会崩。

from wsgiref.simple_server import make_server

def demo_app(environ,start_response):

path=environ[‘PATH_INFO’]

status_code=’200 OK’

response = 'hello'

if path == '/':

1/0

response =’欢迎来到我的首页'

elif path =='/test':

response = '欢迎来到test页面'

elif path == ‘/demo' :

response = '欢迎来到demo页面'

else:

status_code=’404 Not Found’

response = '页面走丢了’

start_response(‘status_code’,[(‘Content-Type,’text/html;charset=utf8’)])

return [‘response’.encode(‘utf8’)]

if_ name_=='_ main_ ':

httpd : make_server(‘ ’, 8080, demo_app):

sa = httpd.socket. getsockname()

print("Serving HTTP on", sa[0], "port", sa[1], "...")

httpd.serve_forever()

重启运行一下服务器

image.png

发现这个错误就是500

注:

为什么配置的地址可以写成空号:httpd : make_server(‘ ’, 8080, demo_app):

如果不写的话就相当于这个地址是 0.0.0.0

相关文章
|
5月前
|
缓存
|
9月前
|
JSON API 网络架构
HTTP常见的请求方法、响应状态码、接口规范介绍
本文详细介绍了HTTP常见的请求方法、响应状态码和接口规范。通过理解和掌握这些内容,开发者可以更好地设计和实现W
1501 83
|
5月前
HTTP协议中常见的状态码 ?
HTTP协议状态码分为1xx、2xx、3xx、4xx、5xx五类。常见状态码包括:101(切换协议)、200(请求成功)、302(重定向)、401(未认证)、404(资源未找到)、500(服务器错误)。
479 0
|
5月前
|
Web App开发 缓存 数据安全/隐私保护
Django全栈实战:HTTP状态码与业务状态码的分层设计与实战应用
HTTP状态码是服务器响应请求的3位数字代码,分为1xx(信息)、2xx(成功)、3xx(重定向)、4xx(客户端错误)、5xx(服务器错误)。业务状态码则用于描述具体业务逻辑结果,常在响应体中返回。二者在前后端交互中有不同用途和处理方式。本文还介绍了如何在Django项目中设计并使用业务状态码。
502 0
|
7月前
|
JSON 安全 网络协议
HTTP/HTTPS协议(请求响应模型、状态码)
本文简要介绍了HTTP与HTTPS协议的基础知识。HTTP是一种无状态的超文本传输协议,基于TCP/IP,常用80端口,通过请求-响应模型实现客户端与服务器间的通信;HTTPS为HTTP的安全版本,基于SSL/TLS加密技术,使用443端口,确保数据传输的安全性。文中还详细描述了HTTP请求方法(如GET、POST)、请求与响应头字段、状态码分类及意义,并对比了两者在请求-响应模型中的安全性差异。
727 20
|
7月前
|
JavaScript 前端开发 开发者
Node学习笔记:HTTP模块
总的来说,Node.js的HTTP模块是一个强大的工具,可以帮助你处理HTTP协议的各种需求。无论你是想开设自己的餐厅(创建服务器),还是想去别的餐厅点菜(发出请求),HTTP模块都能满足你的需求。
266 18
HTTP状态码解析:在Haskell中判断响应成功与否
HTTP状态码解析:在Haskell中判断响应成功与否
|
SQL 分布式计算 DataWorks
DataWorks操作报错合集之遇到报错:HTTP状态码400,该如何处理
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
|
开发者
深入了解HTTP状态码
深入了解HTTP状态码
506 64
|
12月前
【网路原理】——HTTP状态码和Postman使用
状态码(200,404,403,405,500,504,302),Postman下载和使用构造请求