美文网首页
flask学习笔记(一):回顾HTTP通信

flask学习笔记(一):回顾HTTP通信

作者: warmsirius | 来源:发表于2019-08-26 08:22 被阅读0次

参考博客

一、HTTP请求报文

1. 起始行

2. 请求头 headers

2.1. 由3部分组成:

  • 请求方法字段
  • URL字段
  • HTTP协议版本字段

它们用空格分隔。例如,GET /index.html HTTP/1.1。

2.2 HTTP协议的请求方法:

  • GET
  • POST
  • HEAD
  • PUT
  • DELETE
  • OPTIONS
  • TRACE
  • CONNECT

2.3 请求头部

请求头部由关键字/值对组成,每行一对,关键字和值用英文冒号“:”分隔。请求头部通知服务器有关于客户端请求的信息,典型的请求头有:

  • User-Agent:产生请求的浏览器类型。

  • Accept:客户端可识别的内容类型列表。

  • Host:请求的主机名,允许多个域名同处一个IP地址,即虚拟主机。

请求头 说明
HOST 接受请求的服务器地址,可以是IP:端口号,也可以是域名
User-Agent 发送请求的应用程序名称
Connection 指定与连接相关的属性,如Connection:Keep-Alive
Accept-Charset 通知服务端可以发送的编码格式
Accept-Encoding 通知服务端可以发送的数据压缩格式
Accept-Language 通知服务端可以发送的语言

3. 空行

最后一个请求头之后是一个空行,发送回车符和换行符,通知服务器以下不再有请求头。

4. 请求体 body

请求数据不在GET方法中使用,而是在POST方法中使用。POST方法适用于需要客户填写表单的场合。

与请求数据相关的最常使用的请求头是 Content-TypeContent-Length

<request-line>   

<headers>

<blank line>

[<request-body>

二、HTTP响应报文

1. 由3部分组成

  • 状态行
  • 响应头部
  • 响应正文

2. 状态行

状态行格式如下:

HTTP-Version Status-Code Reason-Phrase CRLF
  • HTTP-Version表示服务器HTTP协议的版本;
  • Status-Code表示服务器发回的响应状态代码;
  • Reason-Phrase表示状态代码的文本描述。

状态代码由三位数字组成,第一个数字定义了响应的类别,且有五种可能取值。

  • 1xx:指示信息--表示请求已接收,继续处理。
  • 2xx:成功--表示请求已被成功接收、理解、接受。
  • 3xx:重定向--要完成请求必须进行更进一步的操作。
  • 4xx:客户端错误--请求有语法错误或请求无法实现。
  • 5xx:服务器端错误--服务器未能实现合法的请求。

3. 响应头部

与请求头部类似,为响应报文添加了一些附加信息

常见响应头部如下:

响应头 说明
Server 服务器应用程序软件的名称和版本
Content-Type 响应正文的类型(是图片还是二进制字符串)
Content-Length 响应正文长度
Content-Charset 响应正文使用的编码
Content-Encoding 响应正文使用的数据压缩格式
Content-Language 响应正文使用的语言

4. HTTP响应报文例子

HTTP/1.1 200 OK
Date: Sat, 31 Dec 2005 23:59:59 GMT
Content-Type: text/html;charset=ISO-8859-1
Content-Length: 122

<html>
<head>
<title>Wrox Homepage</title>
</head>
<body>
<!-- body goes here -->
</body>
</html>

三、web框架

1. web框架主要功能

  • 实现路由
  • 视图函数

2. Django服务器

  • 接收从前端发送过来的请求
  • 解析HTTP报文
  • 进行路由分发
  • 根据用户的URL执行对应的视图函数
  • 将视图函数的返回值打包成HTTP响应报文
  • 借助刚才简历的tcp连接将相应回传
  1. Django通过服务器uwsgi接收请求、数据、解析,然后交给框架,
  2. 框架WSGI将请求数据交给Django框架,
  3. Django框架根据解析的数据,进行路由分发,找视图函数

3. 哪些可以当做前端?

  • 浏览器
  • 手机APP
  • 爬虫
  • 程序urllib、urllib2
  • ajax

相关文章

  • flask学习笔记(一):回顾HTTP通信

    参考博客 HTTP 请求报文 响应报文 一、HTTP请求报文 1. 起始行 2. 请求头 headers 2.1....

  • 课堂笔记

    Flask课堂笔记 1. HTTP通信与Web框架 1.1 流程 客户端将请求打包成HTTP的请求报文(HTTP协...

  • 《Flask Web开发实战》—— HTTP

    本书第二章Flask之HTTP,对一些内容做个笔记,方便回顾。 1. HTTP请求 request对象封装了请求报...

  • Flask学习笔记之HTTP(一)

    先整理一下HTTP基础知识: HTTP 方法:GET 对比 POST HTTP 的工作方式是客户机与服务器之间的请...

  • Python学习

    python-flask框架学习(二) 1、回顾Flask 2、Flask route路由 2.1、静态路由 ap...

  • Flask学习笔记之第一个Flask程序

    笔记大纲 最近在学习Flask框架,本系列课程为学习笔记。大纲: Python环境 创建Flask项目 Debug...

  • Flask框架学习

    Flask框架学习http://www.pythondoc.com/flask-mega-tutorial/hel...

  • SQLAlchemy

    Flask学习记录之Flask-SQLAlchemy http://www.cnblogs.com/agmcs/p...

  • python flask安装和命令

    Flask Web开发实战学习笔记 Flask简介 Flask是使用Python编写的Web微框架。Web框架可以...

  • flask备课

    学习 Flask 函数 模块 类 与 实例 装饰器 http://www.bjhee.com/flask-4.ht...

网友评论

      本文标题:flask学习笔记(一):回顾HTTP通信

      本文链接:https://www.haomeiwen.com/subject/ewblectx.html