HTTP & requests
1. HTTP1.1 工作原理1.2 消息结构请求消息请求方法
响应消息响应头信息状态码
2. Request
1. HTTP
HTTP(HyperText Transfer Protocol,超文本传输协议)是一种网络传输协议,所有的WWW文件都必须遵守这个标准。 HTTP基于TCP/IP通信协议来传递数据(HTML 文件, 图片文件, 查询结果等)。
1.1 工作原理
事务处理(HTTP操作)可分为以下四步: 客户端 <—建立连接—> 服务端 客户端 —请求—> 服务端 客户端 <—响应— 服务端 客户端 <—断开连接—> 服务端 在上述过程中,HTTP使用URL建立连接和传输数据。建立连接后,HTTP通过RFC5322和MIME/RFC2045格式来传送数据消息。HTTP具有以下三个特点: 1)无连接:每次连接只处理一个请求,请求处理完成后断开连接。 2)媒体独立:基于 MIME-type 可以传输不同类型数据。 3)无状态:对事务处理没有记忆能力。
1.2 消息结构
请求消息
客户端请求消息有请求行(request line),请求头部(header),空行和请求数据四部分组成(图1)。 下面展示了请求消息的一个实例。
GET /hello.txt HTTP/1.1
User-Agent: curl/7.16.3 libcurl/7.16.3 OpenSSL/0.9.7l zlib/1.2.3
Host: www.example.com
Accept-Language: en, mi
请求方法
方法描述
GET请求指定的页面信息,并返回实体主体。HEAD类似于GET,但仅返回报头。POST向指定资源提交数据请求处理,数据包含在请求体中。PUT用客户端传送的数据取代指定的文档的内容。PATCHPUT的补充,用来对已知资源进行局部更新。DELETE请求服务器删除指定的页面。CONNECTHTTP/1.1 协议中预留给能够将连接改为管道方式的代理服务器。OPTIONS允许客户端查看服务器的性能。TRACE回显服务器收到的请求,主要用于测试或诊断。
响应消息
服务端响应消息由状态行,消息报头,空行和响应正文组成(图2)。
HTTP/1.1 200 OK
Date: Mon, 27 Jul 2009 12:28:53 GMT
Server: Apache
Last-Modified: Wed, 22 Jul 2009 19:15:56 GMT
ETag:
"34aa387-d-1568eb00"
Accept-Ranges: bytes
Content-Length: 51
Vary: Accept-Encoding
Content-Type: text/plain
响应头信息
应答头说明
Allow服务器支持哪些请求方法。Content-Encoding文档的编码方法。Content-Length内容长度。Content-Type文档属于何种MIME类型。Date当前格林威治时间。Expires文档失效期,过期不再缓存。Last-Modified文档最后改动时间。Location文档位置。Refresh刷新文档的时间。Server服务器名字。Set-Cookie设置和页面关联的cookie。WWW-Authenticate客户应该在Authorization头中提供什么类型的授权信息。
状态码
分类描述
1**信息,服务器收到请求,需要请求者继续执行操作。2**成功,操作被成功接收并处理。3**重定向,需要进一步的操作以完成请求。4**客户端错误,请求包含语法错误或无法完成请求。5**服务器错误,服务器在处理请求的过程中发生了错误。
HTTP 教程
2. Request
import requests
r
=requests
.get
('https://api.github.com/events')
r
=requests
.post
('https://api.github.com/events')
快速上手