Questions tagged «http»

超文本传输​​协议(HTTP)是一种应用程序级网络协议,用于在万维网上传输内容。


2
CURL命令行URL参数
我正在尝试DELETE使用CURL 发送带有url参数的请求。我在做: curl -H application/x-www-form-urlencoded -X DELETE http://localhost:5000/locations` -d 'id=3' 但是,服务器没有看到参数id =3。我尝试使用某些GUI应用程序,并且在将URL传递为:时http://localhost:5000/locations?id=3,它可以工作。我确实更愿意使用CURL而不是此GUI应用程序。谁能指出我做错了吗?
186 http  curl 

10
在由nodejs制作的REST API中设置响应状态和JSON内容并表达的正确方法
我正在玩Nodejs,并通过构建一个小的rest API来表达。我的问题是,设置代码状态以及响应数据的最佳实践/最佳方法是什么? 让我用一些代码来解释(我不会放置节点并表达启动服务器所需的代码,而只是涉及的路由器方法): router.get('/users/:id', function(req, res, next) { var user = users.getUserById(req.params.id); res.json(user); }); exports.getUserById = function(id) { for (var i = 0; i < users.length; i++) { if (users[i].id == id) return users[i]; } }; 下面的代码运行完美,当与Postman发送请求时,我得到以下结果: 如您所见,状态显示为200,这是确定的。但这是最好的方法吗?是否需要我自己设置状态以及返回的JSON?还是总是由快递处理? 例如,我只是做了一个快速测试,并略微修改了上面的get方法: router.get('/users/:id', function(req, res, next) { var user = users.getUserById(req.params.id); if (user …
186 node.js  rest  http  express 

9
HTTP中的“ 406-不可接受的响应”是什么?
在我的Ruby on Rails应用程序中,我尝试通过POSTMAN REST客户端以Base64格式上传图像。发布图片时,我收到406不可接受的响应。当我检查数据库时,该图像在那里并且已成功保存。 此错误的原因是什么,我需要在标题中指定任何内容吗? 我的请求: 网址- http://localhost:3000/exercises.json 标头: Content-Type - application/json 原始数据: { "exercise": { "subbodypart_ids": [ "1", "2" ], "name": "Exercise14" }, "image_file_name": "Pressurebar Above.jpg", "image":"******base64 Format*******" }

14
建立System.Net.HttpClient get的查询字符串
如果我希望使用System.Net.HttpClient提交http get请求,似乎没有用于添加参数的api,这是正确的吗? 是否有任何简单的API可以用来构建查询字符串,而无需构建名称值集合并对其进行url编码,然后最终将它们串联起来?我希望使用类似RestSharp的api的东西(即AddParameter(..))
184 c#  .net  http 

8
.NET:发送带有数据的POST和读取响应的最简单方法
令我惊讶的是,在.NET BCL中,我无法说出这么简单的事情: byte[] response = Http.Post ( url: "http://dork.com/service", contentType: "application/x-www-form-urlencoded", contentLength: 32, content: "home=Cosby&favorite+flavor=flies" ); 上面的假设代码使用数据进行HTTP POST,并从Post静态类的方法返回响应Http。 既然我们没有这么容易的事情,那么下一个最佳解决方案是什么? 如何发送带有数据的HTTP POST并获取响应的内容?

1
无缓存和必须重新验证之间的区别
从RFC 2616 http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9.1 无缓存 如果no-cache指令未指定字段名,则在未经原始服务器成功重新验证的情况下,缓存不得使用响应来满足后续请求。这样,即使已配置为将陈旧响应返回给客户端请求的缓存,原始服务器也可以防止缓存。 因此,它指示代理重新验证所有响应。 比较这个 必须重新验证 当在缓存接收到的响应中存在must-revalidate指令时,该缓存在过期之前将不能使用该条目来响应后续请求,而不必先通过原始服务器对其进行验证,则该缓存不得使用该条目 因此,它指示代理重新验证过时的响应。 特别是关于no-cache,这是用户代理实际,凭经验对待该指令的方式吗? 什么是点no-cache,如果有must-revalidate和max-age? 看到这个评论: http://palpapers.plynt.com/issues/2008Jul/cache-control-attributes/ 无缓存 尽管此指令听起来像是在指示浏览器不要缓存页面,但还是有细微的差别。根据RFC,“ no-cache”指令告诉浏览器在从缓存中提供页面之前,应先与服务器进行验证。重新验证是一种精巧的技术,可让应用程序节省带宽。如果浏览器已缓存的页面未更改,则服务器仅向浏览器发出信号,并从缓存中显示该页面。因此,浏览器(至少在理论上至少)将页面存储在其缓存中,但仅在与服务器重新验证后才显示页面。实际上,IE和Firefox已经开始对待no-cache指令,就像它指示浏览器甚至不缓存页面一样。大约一年前,我们开始观察这种行为。 有人在这方面有更多官方的吗? 更新资料 服务器仅当且仅当未能验证表示中的请求可能导致错误操作(例如静默未执行的金融交易)时,才应使用must-revalidate指令。 到现在为止,我从来没有想过这件事。RFC表示不要轻易使用必须重新验证。问题是,对于Web服务,您必须持否定态度,并为未知的客户端应用程序假设最糟糕的情况。任何陈旧的资源都有可能引起问题。 我刚刚考虑过的其他东西,如果没有Last-Modified或ETag,浏览器只能再次获取整个资源。但是,使用ETags,我观察到Chrome似乎至少在每次请求时都会重新验证。这使得这两个指令毫无意义,或者至少命名不当,因为它们不能正确地重新验证,除非请求还包含其他标头,这些标头随后仍然导致“始终重新验证”。 我只想使最后一点更清楚。仅设置must-revalidate但不包含ETag或Last-Modified,代理就只能再次获取内容,因为它没有什么可发送到服务器进行比较。 但是,我的经验测试表明,当响应中包含ETag或修改后的标头数据时,无论must-revalidate标头是否存在,代理始终会重新进行验证。 所以点must-revalidate是强制“旁路缓存”时,它会过时,如果当您设置了一生/年龄这只能发生,从而must-revalidate设置上,没有年龄或其他头的响应,它实际上就变成等同于no-cache自响应将立即被视为过期。 -因此,我将最终标记Gili的答案!

3
URL矩阵参数与查询参数
我想知道是在URL中使用矩阵还是查询参数。我发现对该主题的较早讨论并不令人满意。 例子 带有查询参数的URL:http://some.where/thing?paramA = 1&paramB = 6542 带有矩阵参数的URL:http://some.where/thing; paramA = 1; paramB = 6542 乍看之下,矩阵参数似乎只有优点: 更具可读性 不需要对XML文档中的“&”进行编码和解码 带有“?”的网址 在许多情况下不会被缓存;具有矩阵参数的URL被缓存 矩阵参数可以出现在路径的任何地方,并且不限于其结尾 矩阵参数可以具有多个值: paramA=val1,val2 但是也有缺点: 只有少数框架(如JAX-RS)支持矩阵参数 当浏览器通过GET提交表单时,这些参数成为查询参数。因此,对于同一任务,它以两种参数结束。为了不混淆REST服务的用户并限制服务开发人员的工作量,在此区域中使用始终查询参数会更容易。 由于服务的开发人员可以选择支持矩阵参数的框架,因此唯一的缺点是浏览器默认会创建查询参数。 还有其他缺点吗?你会怎么做?
178 http  url  rest  parameters  jax-rs 



2
“ 304未修改”如何工作?
如何生成“ 304未修改”响应? 浏览器如何确定对HTTP请求的响应是否为304? 是由浏览器设置还是从服务器发送? 如果由服务器发送,服务器如何知道缓存中可用的数据,又如何将304设置为图像? 我的猜测,如果它是由浏览器生成的: function is_modified() { return get_data_from_cache() === get_data_from_url(); } function get_data_from_cache() { return some_hash_or_xxx_function(cache_data); } function get_data_from_url() { return some_hash_or_xxx_function(new_data); } function some_hash_or_xxx_function(data) { // Do something with the data. // What is that algorithm? return result; } console.log(is_modified()); 我依靠第三方API提供程序来获取数据,解析并将其推送到我的数据库。每次请求期间数据可能会更改,也可能不会更改,但是标头始终会发送200。我不想解析,检查数据库中的最后一个唯一ID,依此类推...以确定数据的变化,也不想直接比较结果(而是I)md5(),sha1()并且crc32()对结果进行散列并可以正常工作,但是我想知道确定算法304。 我想使用相同的算法来确定数据中的更改。


3
Angular2 http.get(),map(),subscribe()和可观察模式-基本理解
现在,我有一个初始页面,其中有三个链接。一旦单击最后一个“朋友”链接,就会启动适当的朋友组件。在这里,我想获取/获取存放在friends.json文件中的朋友列表。到现在为止一切正常。但是,我仍然是使用RxJs的可观察,映射,订阅概念的angular2 HTTP服务的新手。我试图理解它并读了几篇文章,但是直到我投入实际工作之前,我不会正确地理解那些概念。 在这里,我已经制作了plnkr,除了HTTP相关的工作外,该工作都在工作。 普伦克 myfriends.ts import {Component,View,CORE_DIRECTIVES} from 'angular2/core'; import {Http, Response,HTTP_PROVIDERS} from 'angular2/http'; import 'rxjs/Rx'; @Component({ template: ` <h1>My Friends</h1> <ul> <li *ngFor="#frnd of result"> {{frnd.name}} is {{frnd.age}} years old. </li> </ul> `, directive:[CORE_DIRECTIVES] }) export class FriendsList{ result:Array<Object>; constructor(http: Http) { console.log("Friends are being called"); // below code …
170 http  angular  rxjs 


6
正确的HTTP状态代码输入错误
不报告200(一切正常)但输入错误时,最佳的HTTP响应代码是什么? 例如,您向服务器提交了一些数据,它将响应您的数据是错误的 使用500看起来更像是服务器问题 ,200与警告/错误响应文本一起使用是不好的(允许缓存,并且一切都不好) 使用204并且什么也不返回,也许很好(但得到很好的支持?),如果请求的路径(脚本)可用并且 使用404错误,并且在适当的地方
169 api  http  validation 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.