http请求

web框架

ε祈祈猫儿з 提交于 2020-02-13 14:35:58
                    web框架     http协议   http简介   HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议。 HTTP是一个基于TCP/IP通信协议来传递数据(HTML 文件, 图片文件, 查询结果等)。 HTTP是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展。目前在WWW中使用的是HTTP/1.0的第六版,HTTP/1.1的规范化工作正在进行之中,而且HTTP-NG(Next Generation of HTTP)的建议已经提出。 HTTP协议工作于客户端-服务端架构为上。浏览器作为HTTP客户端通过URL向HTTP服务端即WEB服务器发送所有请求。Web服务器根据接收到的请求后,向客户端发送响应信息。     http特点   1、简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有GET、HEAD、POST。每种方法规定了客户与服务器联系的类型不同。 由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很快。 2、灵活:HTTP允许传输任意类型的数据对象

Nginx配置参数说明

∥☆過路亽.° 提交于 2020-02-13 08:33:19
一、主配置段 1、正常运行必备的配置 #运行用户和组,组身份可以省略 user nginx nginx; #指定nginx守护进程的pid文件 pid path/to/nginx.pid; #指定所有worker进程所能打开的最大文件句柄数 worker_rlimit_nofile 100000; 2、性能优化相关的配置 #worker进程的个数,通常应该略少于CPU物理核心数,也可以使用auto自动获取 worker_processes auto; #CPU的亲缘性绑定(同样是无法避免CPU的上下文的切换的) #优点:提升缓存的命中率 #context switch:会产生CPU不必要的消耗 work_cpu_affinity 00000001 00000010 00000100 00001000 00010000 00100000 01000000 10000000; #计时器解析度(请求到达nginx,nginx相应用户请求后,要获取系统时间并记录日志,高并发的时候可能每秒钟获取很多很多次) #降低此值,可以减少gettimeofday()系统调用的次数 timer_resolution 100ms; #指明worker进程的nice值:数字越小,优先级越高 #nice值范围:-20,19 #对应的优先级:100,139 worker_priority number; 二

HTTP 1.1与HTTP 1.0的比较

拜拜、爱过 提交于 2020-02-13 02:11:34
HTTP 1.1 与 HTTP 1.0 的比较 一个 WEB 站点每天可能要接收到上百万的用户请求, 为了 提高系统的效率, HTTP 1.0 规定 浏览器与服务器只保持短暂的连接,浏览器的每次请求都需要与服务器建立一个 TCP 连接,服务器完成请求处理后立即断开 TCP 连接, 服务器不跟踪每个客户也不记录过去的请求。但是,这也造成了一些性能上的缺陷,例如,一个包含有许多图像的网页文件中并没有包含真正的图像数据内容,而只是指明了这些图像的 URL 地址,当 WEB 浏览器访问这个网页文件时,浏览器首先要发出针对该网页文件的请求,当浏览器解析 WEB 服务器返回的该网页文档中的 HTML 内容时,发现其中的 <img> 图像标签后,浏览器将根据 <img> 标签中的 src 属性所指定的 URL 地址再次向服务器发出下载图像数据的请求,如图 3.3 所示。 图 3.3 显然,访问一个包含有许多图像的网页文件的整个过程包含了多次请求和响应,每次请求和响应都需要建立一个单独的连接,每次连接只是传输一个文档和图像,上一次和下一次请求完全分离。即使图像文件都很小,但是客户端和服务器端每次建立和关闭连接却是一个相对比较费时的过程,并且会严重影响客户机和服务器的性能。当一个网页文件中包含 Applet , JavaScript 文件, CSS 文件等内容时,也会出现类似上述的情况。 为了克服

request与response

懵懂的女人 提交于 2020-02-13 01:53:47
request 当一个页面被请求时,Django就会创建一个包含本次请求原信息的HttpRequest对象。Django会将这个对象自动传递给响应的视图函数,一般视图函数约定俗成地使用 request 参数承接这个对象。 常用值 request.method # 请求方法 GET POST,八种请求方法 request.path_info # 路径 不包含ip和端口 也不包含参数 request.GET # url上携带的参数 {} request.POST # form提交POST请求的参数 {} 编码类型是urlencode request.body # 请求体,bytes类型 request.FILES # 上传的文件的编码类型是:enctype="multipart/form-data",默认为form-urlencoded request.COOKIES # cookie的字典 request.session # session的数据 request.META # 请求头,数据类型为字典;获取:小写 ——> 大写 即:后台获取其中的值时,key需要大写,中间带-的key转为"_"。如:request.META.get('CONTENT_TYPE') request.get_full_path() # 获取全路径路径 不包含ip和端口 包含参数 request.get

计算机网络HTTP:HTTP缓存

こ雲淡風輕ζ 提交于 2020-02-13 01:45:42
缓存命中 -> 缓存再验证成功 -> 缓存再验证失败 = 缓存未命中 Cache_Control 可缓存性 解释 public HTTP请求返回的过程中,在cache_control中设置这个值,代表HTTP请求返回的内容所经过的任何路径当中(包括中间一些HTTP代理服务器以及发出请求的客户端浏览器),都可以对返回内容进行缓存操作 private 代表只有发起请求的浏览器才可以进行缓存 no_cache 可以在本地进行缓存,但每次发请求时,都有向服务器进行验证,如果服务器允许,才能使用本地缓存 no_store 本地和代理服务器都不可以存储缓存,每次都要重新请求,拿到内容 no_transform 主要用在proxy服务器,不允许进行格式转换 max_age 和 Expires 浏览器会先检查缓存是否过期,如果没有过期,就不向服务器发起请求,直接使用本地缓存,这叫做缓存命中。 max_age:最大缓存时间 Expires:有效期 这两个同时存在时,max_age优先生效 Etag 和 Last_Modified 如果没有max_age和Expires标签,或者验证失败,则浏览器向服务器发起请求,浏览器通过Etag或Last_Modified判断浏览器缓存的内容是否过期。 如果没过期返回304(服务端已经执行了请求,但是响应没有改变),这叫做缓存再验证成功,浏览器更新本地缓存的max

HTTP 1.1与HTTP 1.0的比较

旧时模样 提交于 2020-02-13 01:26:43
HTTP 1.1 与 HTTP 1.0 的比较 一个 WEB 站点每天可能要接收到上百万的用户请求, 为了 提高系统的效率, HTTP 1.0 规定 浏览器与服务器只保持短暂的连接,浏览器的每次请求都需要与服务器建立一个 TCP 连接,服务器完成请求处理后立即断开 TCP 连接, 服务器不跟踪每个客户也不记录过去的请求。但是,这也造成了一些性能上的缺陷,例如,一个包含有许多图像的网页文件中并没有包含真正的图像数据内容,而只是指明了这些图像的 URL 地址,当 WEB 浏览器访问这个网页文件时,浏览器首先要发出针对该网页文件的请求,当浏览器解析 WEB 服务器返回的该网页文档中的 HTML 内容时,发现其中的 <img> 图像标签后,浏览器将根据 <img> 标签中的 src 属性所指定的 URL 地址再次向服务器发出下载图像数据的请求,如图 3.3 所示。 图 3.3 显然,访问一个包含有许多图像的网页文件的整个过程包含了多次请求和响应,每次请求和响应都需要建立一个单独的连接,每次连接只是传输一个文档和图像,上一次和下一次请求完全分离。即使图像文件都很小,但是客户端和服务器端每次建立和关闭连接却是一个相对比较费时的过程,并且会严重影响客户机和服务器的性能。当一个网页文件中包含 Applet , JavaScript 文件, CSS 文件等内容时,也会出现类似上述的情况。 为了克服

$_SERVER全局数组详细参数

你离开我真会死。 提交于 2020-02-13 01:10:59
PHP编程中经常需要用到一些服务器的一些资料,特把$_SERVER的详细参数整理下,方便以后使用。 $_SERVER['PHP_SELF'] #当前正在执行 脚本 的文件名,与 document root相关。 $_SERVER['argv'] #传递给该 脚本 的参数。 $_SERVER['argc'] #包含传递给程序的 命令行参数 的个数(如果运行在命令行模式)。 $_SERVER['GATEWAY_INTERFACE'] #服务器使用的 CGI 规范的版本。例如,“CGI/1.1”。 $_SERVER['SERVER_NAME'] #当前 运行脚本 所在服务器 主机 的名称。 $_SERVER['SERVER_SOFTWARE'] #服务器标识的字串,在响应请求时的头部中给出。 $_SERVER['SERVER_PROTOCOL'] #请求页面时通信协议的名称和版本。例如,“HTTP/1.0”。 $_SERVER['REQUEST_METHOD'] #访问页面时的请求方法。例如:“GET”、“HEAD”,“POST”,“PUT”。 $_SERVER['QUERY_STRING'] #查询(query)的字符串。 $_SERVER['DOCUMENT_ROOT'] #当前 运行脚本 所在的文档根目录。在服务器配置文件中定义。 $_SERVER['HTTP_ACCEPT']

HTTP1.0 和 HTTP1.1 对比

假装没事ソ 提交于 2020-02-13 00:08:44
转自: http://blog.csdn.net/zhangxiaoxiang/article/details/765082 HTTP 1.1 与 HTTP 1.0 的比较 一个 WEB 站点每天可能要接收到上百万的用户请求, 为了 提高系统的效率, HTTP 1.0 规定 浏览器与服务器只保持短暂的连接,浏览器的每次请求都需要与服务器建立一个 TCP 连接,服务器完成请求处理后立即断开 TCP 连接, 服务器不跟踪每个客户也不记录过去的请求。但是,这也造成了一些性能上的缺陷,例如,一个包含有许多图像的网页文件中并没有包含真正的图像数据内容,而只是指明了这些图像的 URL 地址,当 WEB 浏览器访问这个网页文件时,浏览器首先要发出针对该网页文件的请求,当浏览器解析 WEB 服务器返回的该网页文档中的 HTML 内容时,发现其中的 <img> 图像标签后,浏览器将根据 <img> 标签中的 src 属性所指定的 URL 地址再次向服务器发出下载图像数据的请求,如图 3.3 所示。 图 3.3 显然,访问一个包含有许多图像的网页文件的整个过程包含了多次请求和响应,每次请求和响应都需要建立一个单独的连接,每次连接只是传输一个文档和图像,上一次和下一次请求完全分离。即使图像文件都很小,但是客户端和服务器端每次建立和关闭连接却是一个相对比较费时的过程,并且会严重影响客户机和服务器的性能

HTTP 1.1与HTTP 1.0的比较

时光总嘲笑我的痴心妄想 提交于 2020-02-12 23:42:33
HTTP 1.1与HTTP 1.0的比较 一个WEB站点每天可能要接收到上百万的用户请求,为了提高系统的效率,HTTP 1.0规定浏览器与服务器只保持短暂的连接,浏览器的每次请求都需要与服务器建立一个TCP连接,服务器完成请求处理后立即断开TCP连接,服务器不跟踪每个客户也不记录过去的请求。 但是,这也造成了一些性能上的缺陷,例如,一个包含有许多图像的网页文件中并没有包含真正的图像数据内容,而只是指明了这些图像的URL地址,当 WEB浏览器访问这个网页文件时,浏览器首先要发出针对该网页文件的请求,当浏览器解析WEB服务器返回的该网页文档中的HTML内容时,发现其中 的<img>图像标签后,浏览器将根据<img>标签中的src属性所指定的URL地址再次向服务器发出下载图像数据的请求,如 下图所示。 显然,访问一个包含有许多图像的网页文件的整个过程包含了多次请求和响应,每次请求和响应都需要建立一个单独的连接,每次连接只是传输一个文档和图 像,上一次和下一次请求完全分离。即使图像文件都很小,但是客户端和服务器端每次建立和关闭连接却是一个相对比较费时的过程,并且会严重影响客户机和服务 器的性能。当一个网页文件中包含Applet,JavaScript文件,CSS文件等内容时,也会出现类似上述的情况。 为了克服HTTP 1.0的这个缺陷, HTTP 1.1支持持久连接

(纯干货)HTTP/1.0/1.1/2.0的区别以及http和https的区别

≯℡__Kan透↙ 提交于 2020-02-12 21:11:00
https://segmentfault.com/a/1190000015316332 深入理解http1.x、http 2和https 一、HTTP/1.x Http1.x 缺陷 :线程阻塞,在同一时间,同一域名的请求有一定数量限制,超过限制数目的请求会被阻塞 http1.0 缺陷 :浏览器与服务器只保持短暂的连接,浏览器的每次请求都需要与服务器建立一个TCP连接(T CP连接的新建成本很高,因为需要客户端和服务器三次握手 ),服务器完成请求处理后立即断开TCP连接,服务器不跟踪每个客户也不记录过去的请求; 解决方案 : 添加头信息——非标准的Connection字段 Connection: keep-alive http1.1: 改进点: 持久连接 引入了持久连接,即TCP连接默认不关闭,可以被多个请求复用,不用声明 Connection: keep-alive (对于同一个域名,大多数浏览器允许同时建立6个持久连接) 管道机制 即在同一个TCP连接里面,客户端可以同时发送多个请求。 分块传输编码 即服务端没产生一块数据,就发送一块,采用”流模式”而取代”缓存模式”。 新增请求方式 PUT:请求服务器存储一个资源; DELETE:请求服务器删除标识的资源; OPTIONS:请求查询服务器的性能,或者查询与资源相关的选项和需求; TRACE:请求服务器回送收到的请求信息