http请求

Http Error-Code List

六眼飞鱼酱① 提交于 2020-01-24 10:13:50
400 Invalid syntax. 语法问题 401 Access denied. 访问拒绝 402 Payment required. 必须完整 403 Request forbidden. 请求被禁止 404 Object not found. 对象没有找到 405 Method is not allowed. 方法不允许 406 No response acceptable to client found. 客户端没有响应 407 Proxy authentication required. 代理需要验证 408 Server timed out waiting for request. 等等请求时服务器断开连接 409 User should resubmit with more info. 有冲突用户应该进行检查 410 Resource is no longer available. 资源不可用 411 Server refused to accept request without a length. 服务器拒绝接受没有长度的请求 412 Precondition given in request failed. 放弃请求失败的条件 413 Request entity was too large. 请求太大 414 Request Uniform

http报文简要分析

你。 提交于 2020-01-24 08:56:29
HTTP:Hypertext transport protocal 超文本传输协议报文格式 http报文格式: 分为http请求报文和响应报文 http请求报文分为四个部分 * 请求行(Request Line) * 请求头部(Header) * 空行(Blank) * 请求数据(Request Body) 其大概的响应字段表示如下: 如图,是截取的一段JavaEE老师吴志祥的个人教学网站(www.wustwzx.com)的http报文 http报文中的每个字段都是ASCII码值 从图中的方框种可以看出请求方法为GET方法,URL为http://www.wustwzx.com/ 协议版本字段为HTTP/1.1 接下来是请求头,在这种方式下看请求头响应的报文不太清楚,通过fiddler的其他功能得到以下请求头的内容: 请求头是由关键字和键值组成的键值对可以看出这次http请求中响应的关键字段有以下: HOST:服务器的域名和相应的监听端口,如果是80则省略。(此处的域名为www.wustwzx.com) Connection:浏览器想要使用的连接类型(此处是keep-alive,就是保持活跃) Cache-Control:指定当前的请求或者响应是否启用缓存( max-age指示客户机可以接收生存期不大于指定时间(以秒为单位)的响应) Upgrade-Insecure-Requests

使用httpclient发送get或post请求

隐身守侯 提交于 2020-01-24 07:47:22
HttpClient 是 Apache Jakarta Common 下的子项目,可以用来提供高效的、最新的、功能丰富的支持 HTTP 协议的客户端编程工具包,并且它支持 HTTP 协议最新的版本和建议。当前官网最新版介绍页是: http://hc.apache.org/httpcomponents-client-4.5.x/index.html 许多模拟http请求的框架都用httpclient,测试人员可通过它模拟请求http协议接口,做接口自动化测试。 1、包下载: 地址: http://mvnrepository.com/ <!-- maven依赖 --> <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient</artifactId> <version>4.5.2</version> </dependency> 发送get请求 1、通过请求参数url和头文件cookie作为参数(cookie可以为空)发送get请求,读取返回内容 代码如下: public static String httpGet(String url,String cookie) throws Exception{ String result=""; //返回信息 //创建一个httpGet请求

HTTP Keep-Alive模式

主宰稳场 提交于 2020-01-24 06:54:45
故事发生在10月份的一次面试经历中,本来我不想说出来丢人显眼,但是为了警醒自己和告诫后人,我决定写成博文发出来。因为在面试过程中,我讲在2009年写过QQ农场助手,在这期间深入学习了HTTP协议,而且在2010-05-18写了博文: HTTP协议及其POST与GET操作差异 & C#中如何使用POST、GET等 。面试官说既然我熟悉HTTP协议,就问“当HTTP采用keepalive模式,当客户端向服务器发生请求之后,客户端如何判断服务器的数据已经发生完成?” 说实话,当时我懵了,一直没有关注过keepalive模式。我只知道: HTTP协议中客户端发送一个小请求,服务器响应以所期望的信息(例如一个html文件或一副gif图像)。服务器通常在发送回所请求的数据之后就关闭连接。这样客户端读数据时会返回EOF(-1),就知道数据已经接收完全了。 我就这样被面试官判了死刑!!!说我完全停留在表面,没有深入(当时真的很受打击,一直自认为技术还不错!)。我当时真的很想找各种借口: 之前没有用到HTTP的keepalive模式,所以没有深入 好久没有用HTTP协议,细节忘了 实习的东西跟HTTP协议没有关系,用得少了就忘了 。。。。。。 觉得各种解释都是那么苍白无力!我再次感叹书到用时方恨少,也感叹一个人的时间是多么的有限(曾一度想成为一个IT专业全才),根本没有精力面面俱到

get post put delete的区别

北城以北 提交于 2020-01-24 05:14:42
1.Http定义了与服务器交互的不同方法,最基本的方法分别是get,post,put,delete 分别对应查、改、增、删四种操作 ①根据HTTP规范,GET用于信息获取,而且应该是安全的和幂等的。 所谓安全的意味着该操作用于获取信息而非修改信息。换句话说,GET 请求一般不应产生副作用。就是说,它仅仅是获取资源信息,就像数据库查询一样,不会修改,增加数据,不会影响资源的状态。   * 注意:这里安全的含义仅仅是指是非修改信息。 ②根据HTTP规范,POST表示可能修改变服务器上的资源的请求。 来源: CSDN 作者: 王小楼 链接: https://blog.csdn.net/wyp6468893/article/details/104029192

HTTP杂谈

别等时光非礼了梦想. 提交于 2020-01-24 05:03:31
HTTP 协议 HTTP请求和响应步骤 以上完整表示了HTTP请求和响应的7个步骤,下面从TCP/IP协议模型的角度来理解HTTP请求和响应如何传递的。 TCP/IP协议 TCP/IP协议模型(Transmission Control Protocol/Internet Protocol),包含了一系列构成互联网基础的网络协议,是Internet的核心协议,通过20多年的发展已日渐成熟,并被广泛应用于局域网和广域网中,目前已成为事实上的国际标准。TCP/IP协议簇是一组不同层次上的多个协议的组合,通常被认为是一个四层协议系统,与OSI的七层模型相对应。 HTTP协议就是基于TCP/IP协议模型来传输信息的。 (1). 链路层 也称作数据链路层或网络接口层(在第一个图中为网络接口层和硬件层),通常包括操作系统中的设备驱动程序和计算机中对应的网络接口卡。它们一起处理与电缆(或其他任何传输媒介)的物理接口细节。ARP(地址解析协议)和RARP(逆地址解析协议)是某些网络接口(如以太网和令牌环网)使用的特殊协议,用来转换IP层和网络接口层使用的地址。 (2). 网络层 也称作互联网层(在第一个图中为网际层),处理分组在网络中的活动,例如分组的选路。在TCP/IP协议族中,网络层协议包括IP协议(网际协议),ICMP协议(Internet互联网控制报文协议),以及IGMP协议

HTTP协议

本秂侑毒 提交于 2020-01-24 02:46:37
HTTP协议 一、HTTP 定义 超文本传输协议(英文:HyperText Transfer Protocol,缩写:HTTP)是一种用于分布式、协作式和超媒体信息系统的应用层协议。HTTP是万维网的数据通信的基础。 二、HTTP工作原理 以下是 HTTP 请求/响应的步骤: 客户端连接到Web服务器 一个HTTP客户端,通常是浏览器,与Web服务器的HTTP端口(默认为80)建立一个TCP套接字连接。 发送HTTP请求通过TCP套接字,客户端向Web服务器发送一个文本的请求报文,一个请求报文由 请求行 请求头部、 空行 请求数据 四部分组成 服务器接受请求并返回HTTP响应 Web服务器解析请求,定位请求资源。服务器将资源复本写到TCP套接字,由客户端读取。一个响应由状态行、响应头部、空行和响应数据4部分组成。 释放连接TCP连接 若connection 模式为close,则服务器主动关闭TCP连接,客户端被动关闭连接,释放TCP连接;若connection 模式为keepalive,则该连接会保持一段时间,在该时间内可以继续接收请求; 客户端浏览器解析HTML内容 客户端浏览器首先解析 状态行 ,查看表明请求是否成功的状态代码。然后解析每一个响应头,响应头告知以下为若干字节的HTML文档和文档的字符集。客户端浏览器读取响应数据HTML,根据HTML的语法对其进行格式化

Django的views视图系统

淺唱寂寞╮ 提交于 2020-01-23 23:00:19
老师的博客: http://www.cnblogs.com/liwenzhou/articles/8305104.html 以看老师的博客为主 一个视图函数(类),简称视图,是一个简单的Python 函数(类),它接受Web请求并且返回Web响应。 响应可以是一张网页的HTML内容,一个重定向,一个404错误,一个XML文档,或者一张图片。 无论视图本身包含什么逻辑,都要返回响应。 代码写在哪里也无所谓,只要它在你当前项目目录下面。 除此之外没有更多的要求了——可以说“没有什么神奇的地方”。 为了将代码放在某处,大家约定成俗将视图放置在项目(project)或应用程序(app)目录中的名为 views.py 的文件中。 from django.shortcuts import render,HttpResponse,redirect def fun1(request): return HttpResponse("返回的是字符串") def fun2(request): # render返回的是个HTML文件,可以传参数 return render(request,"main.html") def fun3(request): # redirect返回的是个url地址 return redirect("http://www.baidu.com") FBV与CBV FBV是基于函数 #

curl 发送 http请求

无人久伴 提交于 2020-01-23 21:54:37
测试接口,经常会用到接口测试工具如postman,而curl命令可以直接在终端进行测试,下面介绍一下如何使用 get 请求 curl "http://localhost:3000/api/books?page=1&limit=4" post请求 curl -X POST "http://localhost:3000/api/books" -d "name=测试" -X POST 表示请求方式,-d 后边是请求参数 ,put、delete请求同post请求 请求参数为json格式 curl -H "Content-Type:application/json" -X POST "http://localhost:3000/api/books" -d {\"name\":\"测试\"} 返回json格式化问题 curl请求没有格式化之前是这样的 用npm安装json命令 npm install -g json 在curl命令后面添加 | json 即可。 curl "http://localhost:3000/api/warehouse?page=1&limit=4" -s | json 作者:M_豆 链接:https://www.jianshu.com/p/4507bd5c12f4 来源:简书 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 来源: https:/

前端技术前沿7

◇◆丶佛笑我妖孽 提交于 2020-01-23 18:06:35
//加载一个http模块 var http = require('http'); //creatServer来创建WEB服务器名为server var server= http.createServer(function(req,res){//函数的两个参数分别为req和res,作用分别是请求和响应 res.writeHead(200,{'content-Type':'text/pain'});//返回的请求头上写状态码是200,返回的文本内容的类型是纯文本 res.end('Hellow Nodejs\n'); }); server.listen(1337, '127.0.0.1');//listen在1337端口监听请求,服务器就可以收到任何来自端口的请求 console.log('Server running at http://127.0.0.1:1337/'); var http = require("http"); http.crateServer(function(request, response) { response.writeHead(200, {"Content-Type": "text/plain"}); response.write("Hello World"); response.end(); }).listen(8888); var http =