post请求

前端实习面试题整理(四)【HTTP相关】

前提是你 提交于 2019-12-03 15:08:23
1、HTTP基本概念:   超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。设计Http最初的目的是为了提供一种发布和接收HTML页面的方法。它可以使浏览器更加高效。Http协议是以明文方式发送信息的,如果黑客截取了Web浏览器和服务器之间的传输报文,就可以直接获得其中的信息。 2、HTTP报文格式:   分为请求报文和响应报文。   ①请求报文: <methods><request-URL><version> <headers>:<value> <entity-body>   大体上是以上这样一个结构:分为三部分(把第三行的空行算上就是四部分)   a.请求行:包括请求方法(常见的GET和POST)、请求地址、和协议版本   b.请求头部:分为多行,每一行都由“头部字段:值”组成,常见的有Host、User-Agent:浏览器类型、Accept:接受数据类型(*/*表示所有)、Accept-Language:客户端接受的语言、Connection:连接方式(close或keepalive)、Cookie:存储于客户端的扩展字段等。   c.请求实体:对应传过去的json数据   ②响应报文:   结构与请求报文一致,也是三个部分:   a.响应行:包括HTTP版本、状态码(比如200、304、404、500等

Http详解

我的梦境 提交于 2019-12-03 14:34:47
1. HTTP请求格式 首先介绍HTTP协议: 超文本传输协议 (HTTP,HyperText Transfer Protocol)是 互联网 上应用最为广泛的一种 网络协议 。所有的 WWW 文件都必须遵守这个标准。 工作原理: 由HTTP客户端发起一个请求,建立一个到服务器指定端口(默认是 80端口 )的TCP连接。 连接 HTTP服务器则在那个端口监听客户端发送过来的请求。一旦收到请求, 请求 服务器(向客户端)发回一个状态行,比如"HTTP/1.1 200 OK",和(响应的)消息,消息的消息体可能是请求的文件、错误消息、或者其它一些信息。响应 客户端接收服务器所返回的信息通过浏览器显示在用户的显示屏上,然后客 http工作流程图 户机与服务器断开连接 显示内容 HTTP协议的网页 HTTP使用TCP而不是UDP的原因在于(打开)一个网页必须传送很多数据,而TCP协议提供传输控制,按顺序组织数据,和错误纠正。   做过Socket编程的人都知道,当我们设计一个通信协议时,“消息头/消息体”的分割方式是很常用的,消息头告诉对方这个消息是干什么的,消息体告诉对方怎么干。HTTP协议传输的消息也是这样规定的,每一个HTTP包都分为HTTP头和HTTP体两部分,消息体是可选的,而消息头是必须的。每当我们打开一个网页,在上面点击右键,选择“查看源文件”

vue 中 axios 使用

﹥>﹥吖頭↗ 提交于 2019-12-03 14:22:14
前言 在对接接口的时候时常会有传参问题调调试试很多,是 JSON、From Data还是 URL 传参,没有搞清楚就浪费很多时间。 本文中就结合 axios 来说明这些的区别,以便在以后工作更好对接。 一、传参区别 在 axios 的源码中对参数的处理分为两类,一类是:get、delete 等,一类是:post、put 等。 // 路径:node_modules\axios\lib\core\Axios.js utils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) { Axios.prototype[method] = function(url, config) { return this.request(utils.merge(config || {}, { method: method, url: url })); }; }); utils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) { Axios.prototype[method] = function(url, data, config) { return this.request(utils

通过jenkins api 触发远程构建

百般思念 提交于 2019-12-03 13:31:38
原文链接(针对用到的构建部分稍作了补充): https://segmentfault.com/a/1190000018939447 Jenkins 是一款流行的开源持续集成工具,可以用来做一些软件开发的自动化工作,如打包,测试,自动部署等。 Jenkins 中有 view 和 job 的概念, view 相当于组, job 则是具体的任务。 view 下面可以创建 job ,但 job 可以不在任何 view 下。 这里主要介绍 Jenkins 提供的 HTTP API ,至于如何使用 Jenkins 请参看 Jenkins User Documentation 。 API 鉴权 Jenkins 使用 Baisc Auth 的权限验证方式,需要传入 username 和 api token 。 其中 api token 需要在用户的设置界面去创建。具体见下面截图引导: 但在 Job 的远程触发中,可以设置用于远程触发的 token (在 Job 的配置页面设置),这样在触发 Job 时就不需要传入 Basic Auth 了。以下是在job中创建token的图示: 远程触发的 token 使用 urlencode 的方式放在请求的 body 中,其原始数据为: token=<Token Value> 下面给出两种方式触发 Job 的例子: Basic Auth curl -X

Django Rest Framework

∥☆過路亽.° 提交于 2019-12-03 11:39:40
Django Rest Framework 一. 什么是RESTful REST与技术无关,代表的是一种软件架构风格,REST是Representational State Transfer的简称,中文翻译为“表征状态转移” REST从资源的角度类审视整个网络,它将分布在网络中某个节点的资源通过URL进行标识,客户端应用通过URL来获取资源的表征,获得这些表征致使这些应用转变状态 REST与技术无关,代表的是一种软件架构风格,REST是Representational State Transfer的简称,中文翻译为“表征状态转移” 所有的数据,不过是通过网络获取的还是操作(增删改查)的数据,都是资源,将一切数据视为资源是REST区别与其他架构风格的最本质属性 对于REST这种面向资源的架构风格,有人提出一种全新的结构理念,即:面向资源架构(ROA:Resource Oriented Architecture) 二. RESTful API设计 API与用户的通信协议,总是使用 HTTPs协议 。 域名 https://api.example.com 尽量将API部署在专用域名(会存在跨域问题) https://example.org/api/ API很简单 版本 URL,如:https://api.example.com/v1/ 请求头 跨域时,引发发送多次请求 路径

记一次大厂的面试过程

最后都变了- 提交于 2019-12-03 10:10:55
前言 2019年6月中旬,实在厌倦了之前平平淡淡的工作和毫不起眼的薪资,不顾亲人的反对,毅然决然地决定只身前往沿海城市,想着找到一份更加具有挑战性的工作,来彻彻底底地重新打磨自己,同时去追求更好的薪资待遇。当然在此之前,自己每天下班后都会利用业余时间抓紧复习巩固刷题等等,大概从3月份开始的吧,持续了3个多月。而后从6月中旬面试一直到6月底,中间大概两个星期,其实我的学历和背景并不突出,但是我个人感觉可能是因为自己简历做的稍微还行(后面我可能会单独出一篇文章,来聊聊我做简历时的一点点心得),让大厂的HR能够多看几眼,中间面过的公司包括喜马拉雅、携程、哔哩哔哩、流利说、蜻蜓FM、爱回收等,陆陆续续拿到4,5个Offer吧,如今已经转正,所以在这里记录下之前的部分 面试题 ,和大家一起分享交流。 正文 1. 烈熊网络 这家公司其实我也没有太了解过,是我前同事推荐的,说里面的薪资待遇不错,然后我当时也有空闲时间,所以就去试试了,虽然公司名气没有上面提到的公司大,但是他的面试题我觉得还是挺有分量的。 1.1 请说出下面代码的执行顺序 async function async1() { console.log(1); const result = await async2(); console.log(3); } async function async2() { console.log(2)

记一次大厂的面试过程

我怕爱的太早我们不能终老 提交于 2019-12-03 10:09:48
前言 2019年6月中旬,实在厌倦了之前平平淡淡的工作和毫不起眼的薪资,不顾亲人的反对,毅然决然地决定只身前往沿海城市,想着找到一份更加具有挑战性的工作,来彻彻底底地重新打磨自己,同时去追求更好的薪资待遇。当然在此之前,自己每天下班后都会利用业余时间抓紧复习巩固刷题等等,大概从3月份开始的吧,持续了3个多月。而后从6月中旬面试一直到6月底,中间大概两个星期,其实我的学历和背景并不突出,但是我个人感觉可能是因为自己简历做的稍微还行( 后面我可能会单独出一篇文章,来聊聊我做简历时的一点点心得 ),让大厂的HR能够多看几眼,中间面过的公司包括 喜马拉雅、携程、哔哩哔哩、流利说、蜻蜓FM、爱回收 等,陆陆续续拿到4,5个Offer吧,如今已经转正,所以在这里记录下之前的部分面试题,和大家一起分享交流。 正文 1. 烈熊网络 这家公司其实我也没有太了解过,是我前同事推荐的,说里面的薪资待遇不错,然后我当时也有空闲时间,所以就去试试了,虽然公司名气没有上面提到的公司大,但是他的面试题我觉得还是挺有分量的。 1.1 请说出下面代码的执行顺序 async function async1() { console.log(1); const result = await async2(); console.log(3); } async function async2() { console.log

laravel6.0控制器-资源控制器

主宰稳场 提交于 2019-12-03 08:21:48
控制器: 控制器用来处理业务的,不应该处理逻辑,如果是小项目可以把逻辑写到控制器里,大点的项目应该抽离出来业务处理层如下: services业务处理层:比如:获取值,验证值,异常捕获 命名规则: 控制器名:用大驼峰命名 如:HelloController; 方法名:用小驼峰 如:helloWorld(); 成员变量:小驼峰 或者 _名称 创建控制器(可以自定义目录): php artisan make:controller UserController php artisan make:controller Admin/UserController 控制器简单实用实例: 控制器简单使用: 迁移数据库 1.创建数据库 laravel6 配置数据库连接 .env DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=laravel6 DB_USERNAME=root DB_PASSWORD=12345678 2.检测默认连接 \config\database.php 'default' => env('DB_CONNECTION', 'mysql'), 3.数据库迁移命令: php artisan migrate 可能会出现42000 1071错误 ,因为创建表的字段名称过长,如下解决 在 \Providers

laravel6.0控制器-资源控制器

↘锁芯ラ 提交于 2019-12-03 08:21:08
控制器:控制器用来处理业务的,不应该处理逻辑,如果是小项目可以把逻辑写到控制器里,大点的项目应该抽离出来业务处理层如下:services业务处理层:比如:获取值,验证值,异常捕获 命名规则:控制器名:用大驼峰命名 如:HelloController; 方法名:用小驼峰 如:helloWorld();成员变量:小驼峰 或者 _名称 创建控制器(可以自定义目录):php artisan make:controller UserController php artisan make:controller Admin/UserController 控制器简单实用实例:控制器简单使用:迁移数据库1.创建数据库 laravel6 配置数据库连接.envDB_CONNECTION=mysqlDB_HOST=127.0.0.1DB_PORT=3306DB_DATABASE=laravel6DB_USERNAME=rootDB_PASSWORD=123456782.检测默认连接\config\database.php 'default' => env('DB_CONNECTION', 'mysql'), 3.数据库迁移命令:php artisan migrate可能会出现42000 1071错误 ,因为创建表的字段名称过长,如下解决在 \Providers\AppServiceProvider

curl 一个使用例子

我的梦境 提交于 2019-12-03 06:28:37
#include <iostream> #define Main main #include <string> #include <assert.h> #include <curl/curl.h> #include <curl/easy.h> #pragma comment(lib,"libcurl.lib") #pragma comment(lib,"ws2_32.lib") using namespace std; class CLibcurlCallback { public: virtual void Progress(void* lpParam, double dTotal, double bLoaded) = 0; }; enum LibcurlFlag { Lf_None = 0, Lf_Download, Lf_Post, Lf_Get, }; class CLibcurl { public: CLibcurl(void); ~CLibcurl(void); /****************************************************************************** *封装类的外部调用接口 */ bool SetPorts(LONG port); //设置连接端口号 bool SetTimeout(int