http请求

Laravel的生命周期

99封情书 提交于 2020-02-18 07:18:33
当你使用一个工具的时候, 如果你对这个工具的内部原理和构造有所了解, 那么在使用这个工具的时候, 就会更加的有信心, 工具用起来也会更加的得心应手. 今天阅读了 Laravel 官方的 生命周期文档 . 这篇文章可以看做是对官方文档的翻译, 但是也加入了当前我对 Laravel 请求生命周期的理解, 同时也算是加深我对 Laravel 整体架构的印象. First Things # 首先, 从请求说起, 所有的来自于 web 服务器 ( Apache / Nginx ) 的请求, 都将会被转发到 public/index.php 这个文件处理. index.php 中代码不多, 但这个文件是一个起始点, 从这个文件开始, Laravel 框架的其余部分就会开始陆续加载了. 同时, index.php 从 bootstrap/app.php 获得了一个实例, 而这也是 Laravel 框架在得到请求之后做的第一件事. HTTP / Console Kernels # 通过之前得到的这个实例, Laravel 便可以生成处理请求的内核了. Laravel 本身提供2种内核, HTTP 内核和 Console 内核, 2种内核分别处理不同类型的请求. 我理解的是 HTTP 内核可能是用来处理 HTTP 请求, 而 Console 内核则用来处理控制台中发送来的请求.

http请求和http响应详细解析

情到浓时终转凉″ 提交于 2020-02-18 07:16:11
HTTP 请求格式 当浏览器向 Web服务器发出请求时,它向服务器传递了一个数据块,也就是请求信息, HTTP请求信息由 3部分组成: l 请求方法 URI协议 /版本 l 请求头 (Request Header) l 请求正文 下面是一个 HTTP请求的例子: GET/sample.jspHTTP/1.1 Accept:image/gif.image/jpeg,*/* Accept-Language:zh-cn Connection:Keep-Alive Host:localhost User-Agent:Mozila/4.0(compatible;MSIE5.01;Window NT5.0) Accept-Encoding:gzip,deflate username=jinqiao&password=1234 ( 1)请求方法 URI协议 /版本 请求的第一行是“方法 URL议 /版本”: GET/sample.jsp HTTP/1.1 以上代码中“ GET”代表请求方法,“ /sample.jsp”表示 URI,“ HTTP/1.1代表协议和协议的版本。 根据 HTTP标准, HTTP请求可以使用多种请求方法。例如: HTTP1.1目前支持 7种请求方法: GET、 POST、 HEAD、 OPTIONS、 PUT、 DELETE和 TARCE。 GET 请求获取由

第一篇web框架

荒凉一梦 提交于 2020-02-18 06:21:21
第一篇web框架 http协议 web应用和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允许传输任意类型的数据对象

HTTP协议笔记

萝らか妹 提交于 2020-02-17 20:37:31
笔记来源,超赞的原文链接https://www.jianshu.com/p/80e25cb1d81a 1.基本概念和交互模型 HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网服务器传输超文本到本地浏览器的传送协议。 HTTP基于TCP/IP通信协议来传递数据 HTTP协议工作于客户端-服务端架构上。浏览器作为HTTP客户端通过URL向HTTP服务端(Web服务器)发送请求。Web服务器根据接收到的请求向客户端发送响应信息 2.HTTP请求消息Request 客户端发送一个HTTP请求到服务器的请求消息由 请求行,请求头部,空行,请求数据 构成 GET请求例子 GET / 562 f25980001b1b106000338 . jpg HTTP / 1.1 Host img . mukewang . com User - Agent Mozilla / 5.0 ( Windows NT 10.0 ; WOW64 ) AppleWebKit / 537.36 ( KHTML , like Gecko ) Chrome / 51.0 .2704 .106 Safari / 537.36 Accept image / webp , image /*,*/ * ; q = 0.8 Referer http : / /www

Javaweb学习(二):Http通信协议

こ雲淡風輕ζ 提交于 2020-02-17 20:11:39
  当我们开始jsp/servlet编程之旅之前,我们还需要知道一些关于网络通讯方面的一些知识。这样能更加有助于我们的理解,希望大家能看懂我的描述,而不至于在学习的路上一知半解。(手动比❤)   认识Http通信协议    http也叫做超文本传输协议,是网页基本的通信协议,也是我们进行网页开发的基础,因此,我们首先要对其进行学习。    我们可以通过一个基本的客户端与服务器的通信过程来对其进行学习:        由图中我们可以看出http是基于请求/响应的通讯模型,并且只能是客户端向服务器端来发送请求,从而获得我们所需要的文件或者文本。同时由于客户端在发送请求时只需发送请求方法和路径,因此http协议极大限度的提高了通信速度。   从http方面来讲,我们编程是要认识到其几个个基本但是非常重要的特点:一个是上文所说的基于请求/响应的通讯模型,还有就是http通信协议是无连接,无状态的。无连接是指每次连接只会处理一次请求,如果服务器处理完成并且收到客户端应答后会立即断开连接。无状态则是指其对于传输的文件没有记忆能力,一旦后续的处理需要前面所传信息,则其必须重新进行传输。   同时,我们在浏览器端使用Http发出请求时,可能会使用以下请求方法,如get、post、head、put、delete方法等,而我们编写jsp/servlet时最最主要是学习两种方法,即get、post方法。

axios

孤人 提交于 2020-02-17 18:07:09
一、说明 Axios是一个基于Promise(ES6中用于处理异步的)的HTTP库,用于浏览器和node.js中, API 。 浏览器中创建XMLHttpRequests 从node.js中创建http请求 支持Promise API 拦截请求和响应 转换请求数据和响应数据 取消请求 自动转换JSON数据 客户端支持防御XSRF 二、安装 npm安装: npm i axios ; 使用cdn:<script src="https://unpkg.com/axios/dist/axios.min.js"></script> 三、常用api说明 可使用 万能地址 发送做测试。客户端使用即在原来ajax代码替换成axios。 1、get请求 axios.get(url[, config]) // 为给定 ID 的 user 创建请求 axios . get ( '/user?ID=12345' ) . then ( function ( response ) { console . log ( response ) ; } ) . catch ( function ( error ) { console . log ( error ) ; } ) ; // 可选地,上面的请求可以这样做 axios . get ( ’/user’ , { params : { ID : 12345 } }

初级爬虫第三天

雨燕双飞 提交于 2020-02-17 10:24:40
主要内容: 付费IP的使用方式 Auth认证 cookie登录验证 requests模块 一、付费IP使用方式: 1.1 无论是免费IP还是付费IP,在使用之前,都需要测试一下,如果好使,再去使用IP爬取数据。 1.2 IP池:列表套字典 eg:[{"https": "IP1:端口1"}, {"http": "IP2: 端口2"}, {"https": "IP3: 端口3"}] 1.3 遍历IP池,利用遍历出来的IP创建IP处理器,再利用处理创建发送网络请求的opener对象 1.4 opener.open()中有一个参数timeout=x,即:x秒之后如果程序还没有反应,就算做超时,报超时,x默认为30 1.5 利用异常处理IP值不好用的报错或者超时 代码: 1 import urllib.request 2 3 爬取百度首页"https://www.baidu.com/" 4 def proxy_user(): 5 #1.目标网页URL 6 url = "https://www.baidu.com/" 7 #2. User-Agent 8 user_agent = ["Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121

HTTP状态码通常分为5种类型

偶尔善良 提交于 2020-02-17 10:19:51
HTTP状态码通常分为5种类型,分别以1~5五个数字开头,由3位整数组成: ------------------------------------------------------------------------------------------------ 200:请求成功 处理方式:获得响应的内容,进行处理 201:请求完成,结果是创建了新资源。新创建资源的URI可在响应的实体中得到 处理方式:爬虫中不会遇到 202:请求被接受,但处理尚未完成 处理方式:阻塞等待 204:服务器端已经实现了请求,但是没有返回新的信 息。如果客户是用户代理,则无须为此更新自身的文档视图。 处理方式:丢弃 300:该状态码不被HTTP/1.0的应用程序直接使用, 只是作为3XX类型回应的默认解释。存在多个可用的被请求资源。 处理方式:若程序中能够处理,则进行进一步处理,如果程序中不能处理,则丢弃 301:请求到的资源都会分配一个永久的URL,这样就可以在将来通过该URL来访问此资源 处理方式:重定向到分配的URL 302:请求到的资源在一个不同的URL处临时保存 处理方式:重定向到临时的URL 304 请求的资源未更新 处理方式:丢弃 400 非法请求 处理方式:丢弃 401 未授权 处理方式:丢弃 403 禁止 处理方式:丢弃 404 没有找到 处理方式:丢弃 5XX 回应代码以“5

使用 flask 实现 RESTful API

瘦欲@ 提交于 2020-02-16 22:15:22
首先,安装flask pip install flask 假设那你已经了解RESTful API的相关概念,如果不清楚,可以参考这篇博客 Designing a RESTful Web API . flask是一个使用Python开发的基于Werkzeug的Web框架。 flask非常适合于开发RESTful API,因为它具有以下特点: 使用Python进行开发,Python简洁易懂 容易上手 灵活 可以部署到不同的环境 支持RESTful请求分发 我一般是用curl命令进行测试,除此之外,还可以使用Chrome浏览器的postman扩展。 资源 首先,创建一个完整的应用,支持响应/, /articles以及/article/:id。 from flask import Flask, url_for app = Flask(__name__) @app.route('/') def api_root(): return 'Welcome' @app.route('/articles') def api_articles(): return 'List of ' + url_for('api_articles') @app.route('/articles/<articleid>') def api_article(articleid): return 'You are

实时获取数据的几种方案

怎甘沉沦 提交于 2020-02-16 22:05:04
在开发的项目中,需要实时获取最新的股价,实时显示项目在线人数,即时通讯等。你会通过什么方法实现呢?下面就说说实时获取数据的几种方式,我尽量按照从low到复杂的顺序罗列。 http协议 HTTP协议大家都很熟悉了,开始本文之前,首先简单回顾一下HTTP协议。 HTTP协议是建立在TCP协议上的应用层协议,协议的本质是 请求----应答 : 即对于HTTP协议来说,服务端给一次响应后整个请求就结束了,这是HTTP请求最大的特点,也是由于这个特点,HTTP请求无法做到的是服务端向客户端主动推送数据。 但由于HTTP协议的广泛应用,很多时候确实又想使用HTTP协议去实现实时的数据获取,这种时候应当怎么办呢?下面首先介绍几种基于HTTP协议的实时数据获取方法。 ifram/frame 对于菜鸟来说,这未必不是个聪明的解决方法。在需要显示的区域嵌入一个frame框,然后通过js或meta标签控制,不停的刷新获取。 优点:简单实用。 缺点:不停地向服务器请求,对服务器压力最大。 应用场景:局域网,客户端数量不大 短轮询 这里我们要用到ajax了,还是通过Js重复的请求服务器来获取实时数据。比起frame刷新,减少了浏览器的渲染过程。并且因为使用了异步处理,没有画面闪现。交互效果更好。 优点:异步处理,交互效果好 缺点:仍然需要不停地向服务器请求 应用场景:短时间的获取数据,比如支付状态