❞ 目录 一、Python 命名规范 二、发送 get 请求 1.安装 requests 2.发送 get 请求 3.如何判断发送 get 请求要不要传请求头部?...4.传入请求头 5.权限被拒:403 - Forbidden: Access is denied 三、response 的返回内容还有其它更多信息 一、Python 命名规范 1.是英文字符、下划线__...先在 fiddler 中去掉请求头部,用这个接口发下请求试试,如果是正常返回 200 就可以不传头部,如果在工具中发送请求后,提示 403 - Forbidden: Access is denied,那么就需要传头部...a.cookies 获取返回的 cookie。 a.text字符串方式的响应体,会自动根据响应头部的字符编码进行解码。...a.raise_for_status() 失败请求(非 200 响应)抛出异常。
搭建flask web框架 环境准备 Python安装 根据自己所需要的环境,可前往官网进行下载python,https://www.python.org/downloads/ 安装,并设置poth环境变量...一个简单的接口就完成了 2、get请求及参数获取方式 获取get接口返回的参数,可以使用request.args.get(“参数名“) 来接收 from flask import Flask from...name=hello时,就会显示name变量,即hello post请求以及参数获取方式 获取post接口返回和参数,可以使用request.form.get(“参数名“) 来接收 from flask..._ == ‘__main__’: app.run(host=’127.0.0.1′,port=5000)#本地地址,和端口号 当我们访问 localhost:5000时,body中传输name值,就会显示...name变量,即hello 如何返回json数据 导入模块jsonify,便可以返回json做接口数据 from flask import Flask,jsonify from flask import
requests是python的一个HTTP客户端库,跟urllib,urllib2类似,那为什么要用requests而不用urllib2呢?...也许有人认为这样可以通过判断和正则来获取跳转的状态码了,其实还有个更简单的方法: 前两个例子很正常,能正常打开的返回200,不能正常打开的返回404。...但第三个就有点奇怪了,那个是百度搜索结果中的302跳转地址,但状态码显示是200,接下来我用了一招让他原形毕露: 只要加上一个参数allow_redirects,禁止了跳转,就直接出现跳转的状态码了,...{ import requests # r = requests.get('http://www.zhidaow.com') # # print(r.request.headers) #自定义请求头部...('http://www.zhidaow.com', headers=headers) print(r.request.headers['User-Agent']) {3.11 自定义请求头部 伪装请求头部是采集时经常用的
2) GET 和 POST 的参数传递也是不同的,GET 请求是将参数拼加到 URL 上进行参数传递的,而 POST 是将参数写入到请求正文中传递的。...3)GET 请求一般是幂等的, POST 请求一般是不幂等的. (如果多次请求得到的结果一样, 就视为请求是幂等的)。 4)GET可以被本地缓存,而POST不能被本地缓存。...5) GET 请求的参数会保存在历史记录中,而 POST 请求的参数不会保留到历史记录中。 3.4 常见请求报头 Content-Type 表示请求的 正文 中的数据格式。...以下 是关于两者依赖 Location 选项的详细说明: HTTP 状态码 301(永久重定向): • 当服务器返回 HTTP 301 状态码时,表示请求的资源已经被永久移动到新的位 置。...对于 type 为 submit 类型来说 , value 就对应了按钮上显示的文本。
知道: 返回的数据格式是JSON 使用了UTF-8字符编码可以正确解析和显示响应内容3..../old/endpoint 时,Nginx 会返回一个 301 重定向响应,并在 Location 头部字段中设置新的 URL /new/endpoint。...这样,客户端知道它需要向新的 URL 发出请求,而不是旧的 URL。6....`,那么 Nginx 将返回 HTTP 200 状态码,以及 'Healthy' 的响应正文。...当请求的资源或方法不允许时,会返回405错误。根据请求方法的不同,显示上面定制的不同错误页面内容。10. $scheme`$scheme`变量包含了请求使用的协议,通常是`http`或`https`。
2. 200~299成功状态码 状态码 说明 200 ok 请求已成功,请求所希望的响应头和数据体都随此响应返回 201 created 请求已被接受,新资源已依据请求的需求要而建立(到达处理程序)。...203 non-authoritative information 服务器成功处理请求,但返回的实体头部元信息不是来自原始服务器上有效的确定集合,而是来自本地或第三方的拷贝。...请求,浏览器会禁止重定向,除非用户确认;http/1.0发送post请求,响应的是301,接下来重定向的也会变成get请求 302 Move temporarily 临时重定向,其他与301一样。...但cache-control或expires头可以缓存 303 see other 当前请求在另一个url上,而客户端应该采用get,303不能缓存,第二个请求可以;http/1.1处理303与302是一致的...,响应中应该包含allow头部 406 not acceptable 客户端可以指定自己愿意接受什么样的资源,如果服务端不能提供返回此状态码 5. 500~599状态码 状态码 说明 500 internal
一、视图函数 一个视图函数,简称视图,是一个简单的python函数,接收web请求并返回web响应。响应可以是一张网页的HTML内容,一个重定向,一个404错误等。...在函数中必须写一个request的参数,然后必须要有返回值,中间的逻辑随便,整个函数写在哪里也无所谓,只要python目录下就行,但我们默认规定,视图函数一般都写在每个应用下面views.py文件里。...具体的头部信息取决于客户端和服务器,下面是一些示例: CONTENT_LENGTH —— 请求的正文的长度(是一个字符串)。...is_anonymous() 返回True 而不是False。 is_authenticated() 返回False 而不是True。...,然后再把首页的HTML文件发给浏览器 中间有两次请求 301和302的区别 301和302状态码都表示重定向,就是说浏览器在拿到服务器返回的这个状态码后会自动跳转到一个新的URL地址,这个地址可以从响应的
API 接口返回的数据。 无论是哪种资源,它们最终都存储在服务器的某个路径下,而 HTTP 协议则负责根据客户端的请求,定位并返回这些资源。 4....OK 访问网站首页,服务器返回网页内容 201 Created 发布新文章,服务器返回文章创建成功的信息 204 No Content 删除文章后,服务器返回“无内容”表示操作成功 301 Moved...以下 是关于两者依赖 Location 选项的详细说明: HTTP 状态码 301(永久重定向): 当服务器返回 HTTP 301 状态码时,表示请求的资源已经被永久移动到新的位置。...特点: 内容可变,每次请求可能返回不同结果。 依赖服务器端脚本(如 PHP、Python、Node.js)和数据库。 处理较慢,服务器负担较大。...示例: 请求:GET /user?id=123 响应:服务器查询数据库后生成并返回用户信息页面。 6. 共勉 上面完整代码:服务器-网页
HTTP 报文结构请求报文:请求行:包含请求方法(GET、POST 等)、请求 URL 和 HTTP 版本。请求头部:包含元数据,如主机、用户代理等。...请求体:包含实际发送的数据(POST 请求时使用)。响应报文:状态行:包含 HTTP 版本、状态码(200、404 等)和状态描述。响应头部:包含元数据,如内容类型、内容长度等。...响应报文包含状态行、响应头部、空行和响应主体。客户端处理响应:客户端接收到响应报文后,解析响应并呈现内容(如在浏览器中显示网页)。4. 常用 HTTP 方法GET用于请求指定的资源。...HEAD类似 GET 方法,但只请求资源的头部信息,不返回主体。OPTIONS用于请求指定资源的通信选项(HTTP 方法支持情况)。PATCH用于局部更新资源。5....HTTP 状态码1xx 信息响应100 Continue101 Switching Protocols2xx 成功200 OK201 Created202 Accepted3xx 重定向301 Moved
方法 描述 是否包含主体 GET 从服务端获取指定信息 否 POST 向服务端发送待处理的数据 是 HEAD 从服务端获取指定信息的头部 否 PUT 向服务端发送数据并替换服务端上指定的数据 是 OPTIONS...101 Switching Protocols 说明服务端正在根据客户端的指定,将协议切换成Update头部所列的协议。 200 OK 请求没有问题,主体包含了所请求的数据。...客户端应该继续显示原来的数据。 205 Reset Content 仍然没有主体部分,但客户端应该清除它所显示的数据。 206 Partial Content 成功执行了一部分或者一个范围内的请求。...301 Moved Permanently 请求的URL已经被移除,响应报文中的Location头部包含现在资源的URL。...306 - 未使用 307 Temporary Redirect 类似于301,但客户端应该使用Location头部给出的URL临时请求,将来的请求仍应是老的URL。
GET方法 用途:用于请求URL指定的资源。 示例:GET /index.html HTTP/1.1 特性:指定资源经服务器端解析后返回响应内容。...C++ // curl -i 显示 $ curl -i www.baidu.com HTTP/1.1 200 OK Accept-Ranges: bytes Cache-Control...示例:OPTIONS * HTTP/1.1 特性:返回允许的方法,如GET、POST等。...200 OK 访问网站首页,服务器返回网页内容。 201 Created 发布新文章,服务器返回文章创建成功的信息。 204 No Content 删除文章后,服务器返回“无内容”表示操作成功。...以下是关于两者依赖Location选项的详细说明: HTTP状态码301(永久重定向): 当服务器返回HTTP 301状态码时,表示请求的资源已经被永久移动到新的位置。
1.GET为获取资源数据 get方法用于请求指定的页面信息,并返回请求消息的主体 2.POST为提交资源数据 post方法用于向指定的资源提交数据 3.PUT为更新资源数据 4.DELETE为删除资源数据...状态行,HTTP/1.1为表示使用的协议是HTTP的版本,我们可以看到状态码常见返回“200 0k”代表是服务器成功响应了此次请求,消息报头,与HTTP请求头部一样,格式为“属性名:属性值",客户端可以根据此获取服务器端响应的信息...有200,301,302,304,404,500,403。 我们最常见的状态码为200,状态码200表示服务器响应成功,服务器找到了客户端请求的内容,并将内容发送给了客户端。...状态码404表示服务器上没有该资源,或者说是服务器上没有找到客户端请求的资源,是最常见的请求错误码。 状态码301和状态码302 状态码301表示临时跳转。...而状态码302代表的是永久性的重定向。 ? 在这里插入图片描述 2xx: 200为请求已经成功,202为服务器已经接受请求,但尚未处理,204为服务器成功处理了请求,但不需要返回如何实体内容。
:请求路径 HTTP1.1:HTTP版本 请求方式: GET:获取资源 POST:增加或修改资源 PUT:修改资源 DELETE:删除资源 请求路径: 服务器以路径作为依据,返回用户所需的内容。...说明了浏览器进行 HTTP 内部请求的原理没有那么复杂的,只是将请求数据按照一定的格式排版再发送到服务器。 而服务器也按照一定的格式进行数据返回,这便是 HTTP 的响应部分。...响应部分 //状态行 HTTP/1.1 301 Moved Permanently //头部信息 Server: openresty Date: Tue, 16 Mar 2021 15:38:14 GMT...> openresty 其中,头部信息和内容跟请求数据格式一致,就不再多说,重点看看状态行: HTTP/1.1 301 Moved...服务器收到请求,需要请求者继续执行操作。 100 (继续发送) 101(正在切换协议) 2xx:请求成功。 200(成功) 201(创建成功) 3xx:重定向。需要进一步操作以完成请求。
可类比于浏览器中的 fetch curl 不加参数直接发送get请求 --head --head 发送 HEAD 请求 --include 打印request Header reponse Body curl...next=%2F 说明肯定发生了重定向 直接curl http://zhihu.com 返回301 也说明发生了重定向 我们详细看下执行curl --head --location http://zhihu.com...next=%2F 图片 第三次响应 200 成功 图片 301 & 302 这里我们看到了请求 http://zhihu.com 返回301 永久重定向 301 301 Moved Permanently...说明请求的资源已经被移动到了由 Location 头部指定的 url 上,是固定的不会再改变。...请求https://www.zhihu.com 返回302 临时重定向 HTTP 302 Found 重定向状态码表明请求的资源被暂时的移动到了由该 HTTP 响应的响应头 Location 指定的 URL
某些网站为了实现友好的用户交互,提供了一种自定义的错误页面,而不是显示一个大大的404 这样虽然提高了用户体验,但是在编写对应POC进行检测的时候如果只根据返回的HTTP头部信息判断,则很可能造成误报...为了判断两个页面的相似度,采用Python的simhash库,这个库具体实现的算法我不太懂,但是Python的好处就是:不懂无所谓,直接拿来用就行。..., 301, 302] #当前可能是404页面的http请求的返回值 #自己构造404url,以便收集一些404页面的信息 for path in self._404_path: for path in..._404_code:可能返回404页面的响应码,如果响应码为这些,则需要对页面进行判断 类在初始化时需要传入一个域名,根据这个域名来拼接几个不存在的或者会被防火墙拦截的请求并提交这些请求,得到返回信息...然后提交正常的http请求并获取响应信息, 如果响应码为404则返回True,否则再状态码是否在_404_code列表中,最后再与之前保存的404页面信息进行比较得到结果。
基于请求/响应模型 通信总是由客户端发起一个请求,然后服务器返回一个响应。 没有请求,就没有响应。...GET /index.html HTTP/1.1 请求头:包含关于请求的元信息,以键值对的形式。...其中最常用的就是GET方法和POST方法. 4.2 GET方法 定义: 用于获取资源,从服务器请求数据。 是最常用的 HTTP 方法。...) 5.2 常见状态码详解 2xx 成功 200 OK:请求成功,返回请求的资源 201 Created:资源创建成功 204 No Content:请求成功,但无内容返回 3xx 重定向...以下是关于两者依赖Location选项的详细说明: HTTP状态码301(永久重定向) 当服务器返回HTTP 301状态码时,表示请求的资源已经被永久移动到新的位置。
一、网络库的选择python的关于http网络请求的module有好些个,我们使用这些库来达到网络爬取或者完成RESTful API交换。这些库比较推荐的有urllib3,requests。...然后使用reqeusts来写一个简单的python网络请求。2.1 服务端这里描述了一个监听8090端口的tcp服务。..."; } | nc -q0 -l 8080; done同时在8090端口,起一个返回200响应的监听服务。...==200: print(r.text)那么因为allow_redirects=True,所以会直接得到301跳转之后那个Location的内容,也就是8090返回的200响应的这个内容。...8090端口那个返回200的监听服务,我们改写成返回json字符串while true; do { echo -e 'HTTP/1.1 200 OK\r\n'; echo '{"name": "Bob"
客户端发送一个请求给服务器,然后服务器返回一个响应。 请求(Request) 一个 HTTP 请求由客户端发起,通常由一个请求行、请求头部、空行和请求体组成。...请求行 请求行包含请求的方法、请求的URL和HTTP协议的版本。 GET /index.html HTTP/1.1 在这个例子中: GET: 请求方法,表示获取指定资源。...PUT: 请求服务器存储一个资源,通常要指定存储的位置。 DELETE: 请求服务器删除指定资源。 HEAD: 类似于 GET 请求,但服务器只返回头部信息,不返回实际内容。...例如,常见的状态码: 200 OK: 请求成功。 201 Created: 请求已经被实现,而且有一个新的资源已经依据请求的需要而建立。...204 No Content: 服务器成功处理了请求,但不需要返回任何实体内容。 301 Moved Permanently: 被请求的资源已永久移动到新位置。
如果请求中的对应大小超过配置的值,则会向客户端返回413(Request Entity Too Large)错误。请注意,浏览器无法正确显示此错误。...[=[response]]表示将对应错误码转为指定的状态码,比如200。uri为返回给客户端的响应uri,uri可含有变量。...示例: error_page 404 /404.html;error_page 500 502 503 504 /50x.html; 这会导致内部重定向到指定的uri,而客户端请求方法已更改为...如果错误响应是由代理服务器或FastCGI/uwsgi/SCGI/gRPC服务器处理的,并且服务器可能返回不同的响应代码(例如200、302、401或404),则可以使用以下配置进行处理: error_page...,只允许来自192.168.1.0/32网段的GET和HAED请求。
200 OK状态码 200 OK 表明请求已经成功。默认情况下状态码为 200 的响应可以被缓存。不同请求方式对于请求成功的意义如下:GET: 已经取得资源,并将资源添加到响应的消息体中。...301 Moved PermanentlyHTTP 301 Moved Permanently 说明请求的资源已经被移动到了由 Location 头部指定的 url 上,是固定的不会再改变。...所以最好将 301 状态码用作 GET 或 HEAD 方法的响应,而对于 POST 则改用 308 Permanent Redirect,因为此状态码会禁止更改请求方法。...这通常是在一些安全的方法(safe),例如GET 或HEAD 或在请求中附带了头部信息: If-None-Match 或If-Modified-Since。...在重定向过程中,请求方法和消息主体不会发生改变,然而在返回 301 状态码的情况下,请求方法有时候会被客户端错误地修改为 GET 方法。