❞ 目录 一、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 自定义请求头部 伪装请求头部是采集时经常用的
知道: 返回的数据格式是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地址,这个地址可以从响应的
方法 描述 是否包含主体 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。
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页面信息进行比较得到结果。
一、网络库的选择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: 被请求的资源已永久移动到新位置。
Request模块定制请求头 如果你想为请求添加 HTTP 头部,只要简单地传递一个 dict 给 headers 参数就可以了。...Request模块响应状态码 我们可以检测响应状态码: r = requests.get('http://httpbin.org/get') r.status_code 200 为方便引用...Response.history 是一个 Response 对象的列表,为了完成请求而创建了这些对象。这个对象列表按照从最老到最近的请求进行排序。.../' r.status_code 200 r.history [<Response [301] ] 如果你使用的是GET、OPTIONS、POST、PUT、PATCH或者DELETE 那么你可以通过...如果 HTTP 请求返回了不成功的状态码, Response.raise_for_status() 会抛出一个 HTTPError 异常。 若请求超时,则抛出一个 Timeout 异常。
如果请求中的对应大小超过配置的值,则会向客户端返回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请求。
2.表单中get和 post 提交方法的区别?...1.GET提交数据会附在URL里,所以是明文传输,而POST是放置在HTTP包里,地址栏不会显示 2.GET传参数会有大小的限制,因浏览器和操作系统的不同而不同。...而POST传参数理论上不受限,但是一般会认为设定。3.POST安全性比GET高 3....HTTP 协议 中几个状态码的含义 :503 500 401 200 301 302 200 客户端请求成功 301 请求的网页已永久移动到新位置 302 服务器目前从不同位置的网页响应请求 401 请求未经授权...3、最关键的,只需要画出正确的“轮廓”(还记得httpwatch 等工具打印出来的头部吗?那就是“轮廓” 的含义),也会有分数,但如果,链“”都写错了,那么就很遗憾了。
与301类似。使用GET和POST请求查看 304Not Modified未修改。所请求的资源未修改,服务器返回此状态码时,不会返回任何资源。...200请求已成功,请求所希望的响应头或数据体将随此响应返回。 201请求已经被实现,而且有一个新的资源已经依据请求的需要而建立,且其 URI 已经随Location 头信息返回。...响应可能通过实体头部的形式,返回新的或更新后的元信息。如果存在这些头部信息,则应当与所请求的变量相呼应。...否则,本响应就应当包含所有本应该返回200响应中应当返回的所有实体头部域。...304如果客户端发送了一个带条件的 GET 请求且该请求已被允许,而文档的内容(自上次访问以来或者根据请求的条件)并没有改变,则服务器应当返回这个状态码。
用浏览器访问该http资源不能正常的显示页面。...用curl命令查看,返回的头部如下: image.png 这里我们可以看到,访问源站的https正常返回200, 访问http的时候,有一个301跳转。...那么源站这个301跳转和之前cdn返回的423locked 有没有什么关系呢?423错误码的意思是CDN 检测到有回环请,哪里造成了回环请求呢? 让我们来看下客户的配置。...,我们的问题原因就逐渐清晰: a.HTTPS访问场景 当用户用Https访问时, 协议跟随回源会用https回源访问, 这时源站正常响应https,CDN收到以后正常返回客户的200,完成一次正常回源请求...】不支持https方式、会继续以http方式回源站,整过程简化为:http->https->http, 因此造成回环请求,CDN检测到回环请求以后返回给客户端423.
每一个对象都通过URL来表示,对象用户负责将状态信息打包进每一条信息内,客户端的无状态请求在头部包含方法信息,即get post put delete click在ios上有300ms延迟,原因及如何解决...介绍知道的http返回的状态码 200 OK 请求成功。一般用于GET与POST请求 201 Created 已创建。...与301类似。使用GET和POST请求查看 304 Not Modified 未修改。所请求的资源未修改,服务器返回此状态码时,不会返回任何资源。...GET和POST的区别 get参数通过url传递,post放在request body中。 get请求在url中传递的参数是有长度限制的,而post没有。...get请求只能进行url编码,而post支持多种编码方式 get请求会浏览器主动cache,而post支持多种编码方式。 get请求参数会被完整保留在浏览历史记录里,而post中的参数不会被保留。
请求方式 主要有:GET/POST两种类型常用,另外还有HEAD/PUT/DELETE/OPTIONS GET和POST的区别就是:请求的数据GET是在url中,POST则是存放在头部 GET:向指定的资源发出...“显示”请求。...使用GET方法应该只用在读取数据,而不应当被用于产生“副作用”的操作中,例如在Web Application中。...响应状态 有多种响应状态,如:200代表成功,301跳转,404找不到页面,502服务器错误 1xx消息——请求已被服务器接收,继续处理 2xx成功——请求已成功被服务器接收、理解、并接受 3xx重定向...出现这种情况是因为,很多网站中的数据都是通过js,ajax动态加载的,所以直接通过get请求获取的页面和浏览器显示的不同。
领取专属 10元无门槛券
手把手带您无忧上云