http请求

requests

本秂侑毒 提交于 2020-03-11 13:43:51
requests 1. requests库的7中主要方法: 1. requests.requst()构造一个请求,支撑一下各个方法的基础方法 2. requests.get()获取HTML网页中的主要方法,对应于http的get方法 1. requests.get(url,params=None,**kwargs) 2. url:拟获取页面的url链接 3. parmas:url中的额外参数,字典或字节流格式,可选 4. **kwargs:12个控制访问的参数 3. requests.head()获取HTML网页中的头信息的的方法,对应http的head方 1. requests.head(url,**kwargs) 2. url:拟获取页面的url链接 3. **kwargs:12个控制访问的参数 4. requests.post()向HTML网页提交post请求方法,对应http的post方法 1. requests.post(url,data=None,json=None,**kwargs) 2. url:拟更新的页面的url链接 3. data:字典或字节序列或文件,request的内容 4. json:JSON格式的数据,request的内容 5. **kwargs:11个控制访问的参数 5. requests.put()向HTML网页提交put请求方法

nginx内置变量

ぃ、小莉子 提交于 2020-03-11 07:53:42
本文根据 Nginx官网 整理了Nginx的ngx_http_core_module模块的内置变量,可与 Apache 做对比参考。随后做了一次测试观察各变量的值,并附上测试结果。 1.变量列表 $ arg _ name 请求行中参数 name 的值。 $args 请求行中的所有参数。 $binary_remote_addr 客户端地址的二进制形式。 $body_bytes_sent 发送给客户端的字节数,不包含响应头的内容,与Apache的mod_log_config模块中的%B兼容。 $bytes_sent 发送给客户端的字节数(1.3.8, 1.2.5)。 $connection 连接序列号(1.3.8,1.2.5) (有人说是TCP连接的序列号,但在1.6.2上抓包观察却不是) 。 $connection_requests 当前连接的请求数(1.3.8,1.2.5)。 $content_length 请求头中的Content-Length值。 $content_type 请求头中的Content-Type值。 $cookie_ name 名为 name 的cookie值。 $document_root 当前请求的根目录或别名。 $document_uri 同 $uri 。 $host 按如下顺序取值:请求的主机名,请求头的Host值,匹配的服务器名。 $hostname

HTTP协议及请求/响应模型

拥有回忆 提交于 2020-03-10 05:57:43
1、上网的整个过程   假设我们点击了某网页上的一个链接,指向 清华大学院系设置 ,其URL是: http://www.tsinghua.edu.cn/chn/yxsz/index.html 。我们来分析一下整个过程: 浏览器分析链接指向页面的URL 浏览器向DNS请求解析www.tsinghua.edu.cn的IP地址 DNS系统解析出清华大学服务器的地址是166.111.4.100 浏览器与服务器建立TCP连接 浏览器发出取文件命令: GET /chn/yxsz/index.html 服务器www.tsinghua.edu.cn给出响应,把文件index.html返回给浏览器 释放TCP连接 浏览器解析并显示“清华大学院系设置”文件index.html中的内容 2、HTTP协议   Internet的基本协议是TCP/IP协议,目前广泛使用的FTP、HTTP协议都是基于TCP/IP的,HTTP是Web应用使用最主要的协议。   HTTP基于请求响应模型。客户端向服务器发送一个请求,请求头包含请求的方法、URI、协议版本、以及包含请求修饰符、客户端信息和内容的类似MIME的消息结果。服务器则返回一个状态行作为响应,内容包括消息协议的版本、成功或失败编码加上包含服务器信息、实体元信息以及可能的实体内容。   HTTP协议是 无状态 的

了解一下http报文。

笑着哭i 提交于 2020-03-10 04:25:36
HTTP 报文:它是 HTTP 应用程序之间发送的数据块。这些数据块以一些文本形式的元信息开头,这些信息描述了报文的内容及含义,后面跟着可选的数据部分。这些报文都是在客户端、服务器和代理之间流动。 报文的语法:所有的 HTTP 报文都可以分为两类,请求报文和响应报文。请求和响应报文的基本报文结构大致是相同的,只有起始行的语法有所不同。 报文分为请求报文和响应报文。 请求报文:它会向 Web 服务器请求一个动作 请求报文的格式: 起始行: <method> <request-URL> <version> 头部: <headers> 主体: <entity-body> 响应报文:它会将请求的结果返回给客户端。 响应报文的格式: 起始行: <version> <status> <reason-phrase> 头部: <headers> 主体: <entity-body> 下面是对各部分的简要描述: 1 、方式 (method) :客户端希望服务器对资源执行的动作,是一个单独的词,比如, GET 、 POST 或 HEAD 。 2 、请求 URL(request-URL) :要直接与服务器进行对话,只要请求 URL 是资源的绝对路径就可以了,服务器可以假定自己是 URL 的主机 / 端口 。 3 、版本 (version) :报文所使用的 HTTP 版本。其格式: HTTP/< 主要版本号

Http协议

只愿长相守 提交于 2020-03-10 02:34:26
一 HTTP 概述 HTTP ( hypertext transport protocol ),即超文本传输协议。这个协议 详细规定了浏览器和万维网服务器之间互相通信的规则。 HTTP 就是一个通信规则,通信规则规定了客户端发送给服务器的内容格式,也规定了服务器发送给客户端的内容格式。其实我们要学习的就是这个两个格式!客户端发送给服务器的格式叫 “ 请求协议 ” ;服务器发送给客户端的格式叫 “ 响应协议 ” 。 特点: HTTP叫超文本传输协议,基于请求/响应模式的! HTTP是无状态协议。 无状态表示对于事物的处理没有记忆能力。有两种保持HTTP连接状态的技术,一个是Cookie,另一个是Session。 URL :统一资源定位符,就是一个网址: 协议名 :// 域名 : 端口 / 路径,例如: http://www.oldboy.cn:80/index.html 二 请求协议 请求协议的格式如下: 请求首行; // 请求方式 请求路径 协议和版本,例如:GET /index.html HTTP/1.1 请求头信息;// 请求头名称:请求头内容,即为key:value格式,例如:Host:localhost 空行; // 用来与请求体分隔开 请求体。 // GET没有请求体,只有POST有请求体。 浏览器发送给服务器的内容就这个格式的,如果不是这个格式服务器将无法解读!在

Servlet中Request与Response应用

泪湿孤枕 提交于 2020-03-09 17:51:56
一、Response 1.Resonse的继承结构: ServletResponse--HttpServletResponse 2.Response代表响应,于是响应消息中的状态码、响应头、实体内容都可以由它进行操作,由此引伸出如下实验: 3.利用Response输出数据到客户端 response.getOutputStream().write("中文".getBytes())输出数据,这是一个字节流,是什么字节输出什么字节,而浏览器默认用平台字节码打开服务器发送的数据,如果服务器端使用了非平台码去输出字符的字节数据就需要明确的指定浏览器编码时所用的码表,以防止乱码问题。response.addHeader("Content-type","text/html;charset=gb2312") response.getWriter().write(“中文”);输出数据,这是一个字符流,response会将此字符进行转码操作后输出到浏览器,这个过程默认使用ISO8859-1码表,而ISO8859-1中没有中文,于是转码过程中用?代替了中文,导致乱码问题。可以指定response在转码过程中使用的目标码表,防止乱码。response.setCharcterEncoding("gb2312"); 其实response还提供了setContentType("text/html;charset

网络基础知识 - HTTP协议

社会主义新天地 提交于 2020-03-09 17:40:24
这里还有一篇帖子写得很详细,可以拜读一下 https://www.cnblogs.com/ranyonsue/p/5984001.html 前传:HTTP协议的演变过程   HTTP(HyperText Transfer Protocol)协议是基于TCP的应用层协议,它不关心数据传输的细节,主要是用来规定客户端和服务端的数据传输格式,最初是用来向客户端传输HTML页面的内容。默认端口是80。 1.HTTP 0.9版本  1991年   这个版本就是最初用来向客户端传输HTML页面的,所以只有一个GET命令,然后服务器返回客户端一个HTML页面,不能是其他格式。利用这个版本完全可以构建一个简单的静态网站了。 2.HTTP 1.0版本  1996年   1.0版本是改变比较大的,奠定了现在HTTP协议的基础。这个版本的协议不仅可以传输HTML的文本页面,还可以传输其他二进制文件,例如图片、视频。而且还增加了现在常用的POST和HEAD命令。请求消息和响应消息也不是单一的了,规定了一些元数据字段。例如字符集、编码、状态响应码等。 3.HTTP 1.1版本  1997年   实际上是在1.0版本之后半年时间又发布了一个版本,这个版本在1.0版本的基础上更加完善了。这个版本增加了持久连接,就是说之前版本的协议一次请求就是一次TCP连接,请求完成后这个连接就关闭掉了

PHP header的集中用法

痞子三分冷 提交于 2020-03-09 13:51:35
PHP header 的几种用法,你知道几种? 1. 跳转页面 header('Location:'.$url); //Location和":"之间无空格。 2. 声明content-type header('content-type:text/html;charset=utf-8'); 3. 返回response状态码 header('HTTP/1.1 404 Not Found'); 4. 在某个时间后执行跳转 header('Refresh: 10; url=http://www.baidu.com/'); //10s后跳转。 5. 控制浏览器缓存 header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); header("Last-Modified: " . gmdate("D, d M Y H:i:s") . "GMT"); header("Cache-Control: no-cache, must-revalidate"); header("Pragma: no-cache"); 6. 执行http验证 header('HTTP/1.1 401 Unauthorized'); header('WWW-Authenticate: Basic realm="Top Secret"'); 7. 执行下载操作 header(

记一次使用Socket模拟HTTP请求

◇◆丶佛笑我妖孽 提交于 2020-03-09 13:09:52
直接进入主题。 HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议,HTTP是基于TCP/IP通信协议来传递数据。 Java中的正好有一个类可以实现TCP的传输与接收,那就是Socket。 首先要先起一个SpringBoot项目用于接收HTTP请求,Controller很简单,接收请求,并返回请求的内容 @RequestMapping("response") @Controller public class MainController { private static Logger LOG = LoggerFactory.getLogger(MainController .class); @RequestMapping("index.html") @ResponseBody public String index(HttpServletRequest request){ LOG.info("请求内容:"+requestContent(request)); return "请求内容:"+requestContent(request); } public String requestContent(HttpServletRequest

dajngo基础

强颜欢笑 提交于 2020-03-09 11:32:10
Django入门及简单的demo练习 一 、什么是web框架? 框架,即framework,特指为解决一个开放性问题而设计的具有一定约束性的支撑结构,使用框架可以帮你快速开发特定的系统,简单地说,就是你用别人搭建好的舞台来做表演。 对于所有的Web应用,本质上其实就是一个socket服务端,用户的浏览器其实就是一个socket客户端。 最简单的Web应用就是先把HTML用文件保存好,用一个现成的HTTP服务器软件,接收用户请求,从文件中读取HTML,返回。 如果要动态生成HTML,就需要把上述步骤自己来实现。不过,接受HTTP请求、解析HTTP请求、发送HTTP响应都是苦力活,如果我们自己来写这些底层代码,还没开始写动态HTML呢,就得花个把月去读HTTP规范。 正确的做法是底层代码由专门的服务器软件实现,我们用Python专注于生成HTML文档。因为我们不希望接触到TCP连接、HTTP原始请求和响应格式,所以,需要一个统一的接口,让我们专心用Python编写Web业务。 这个接口就是WSGI:Web Server Gateway Interface。 实例: 1 from wsgiref.simple_server import make_server 2 3 4 def application(environ, start_response): 5 start_response