- [python]poetry安装和使用
FL1623863129
Pytorchpython
Python新建Poetry环境一、安装Poetry:1、windows直接安装:(Invoke-WebRequest-Urihttps://install.python-poetry.org-UseBasicParsing).Content|python-2、pip安装pipinstallpoetry二、创建项目1、指定虚拟环境存放目录poetryconfigvirtualenvs.pathD:
- 使用异步任务队列与事件驱动架构提升Serverless应用的实时处理能力与资源利用率的技术详解
瑕疵
热点资讯
博客主页:瑕疵的CSDN主页Gitee主页:瑕疵的gitee主页⏩文章专栏:《热点资讯》使用异步任务队列与事件驱动架构提升Serverless应用的实时处理能力与资源利用率的技术详解使用异步任务队列与事件驱动架构提升Serverless应用的实时处理能力与资源利用率的技术详解使用异步任务队列与事件驱动架构提升Serverless应用的实时处理能力与资源利用率的技术详解引言异步任务队列概述定义与特点
- 39【内存条与硬盘的架构逻辑】
学编程的闹钟
从零开始学编程语言学习
内存和硬盘大家应该并不陌生,不过要以文字的形式表述2者的关系难度还是很大的,我们这节课就来讲解这个问题,本节课非常重要,本节课讲的点便是几乎所有的逆向工具研发的理论框架(由于本文是知识手册,因此在后面会有专门的帖子来引用本帖)解下来我使用玄幻小说的情节为大家讲解,有一个功法叫灵体转换,就是可以将自己的身体变成灵魂形态大家把硬盘想象成一个身体,内存想象成灵魂,也就是说一个软件要想运行,windows
- 开发者交流平台项目部署到阿里云服务器教程
独自破碎E
阿里云服务器云计算java后端开发语言
本文使用PuTTY软件在本地Windows系统远程控制Linux服务器;其中,Windows系统为Windows10专业版,Linux系统为CentOS7.664位。1.工具软件的准备maven:https://archive.apache.org/dist/maven/maven-3/3.6.1/binaries/apache-maven-3.6.1-bin.tar.gztomcat:https
- python入门教程jupyter_Jupyter Notebooks的安装和使用介绍
weixin_39953618
最近又开始重新学习Python,学习中使用到了一款编辑器JupyterNotebooks,非常想安利给初学python的同学。注:本文内容仅针对windows环境下安装和配置JupyterNotebooks。1.JupyterNotebooks简介国际惯例还是来一段官方的介绍:Notebooks其实就像是你的python笔记本一样,不仅可以运行书写的python代码,同时还支持markdown格式
- 本地Apache Hive的Linux服务器集群复制数据到SQL Server数据库的分步流程
weixin_30777913
数据库数据仓库hivesqlserver
我们已经有安装ApacheHive的Linux服务器集群,它可以连接到一个SQLServerRDS数据库,需要在该Linux服务器上安装配置sqoop,然后将Hive中所有的表数据复制到SQLServerRDS数据库。以下是分步指南,用于在Linux服务器上安装配置Sqoop并将Hive表数据迁移至SQLServerRDS:1.安装Sqoop步骤:下载Sqoop前往ApacheSqoop下载页面,
- Erpnext安装
人间不值得T皿T
开源项目pythonerp开源项目javascript
Erpnext安装环境要求Ubuntu23.04x86_64Python3.10.12pip23.0.1nodev18.16.0npm9.5.1yarn1.22.22MariaDB10.11.2Redis7.0.8wkhtmltox0.12.6.1bench5.22.6环境安装Reids安装//安装7.0.8也可不指定版本直接执行sudoaptinstallredis-serversudoapti
- python调用git在windows,ImportError在Windows 10 Git Bash上使用Anaconda Python导入_ssl
Kuchiki Touko
ContextIamworkingbehindacorporateproxywithaself-signedcertificate.Ihavedocumentedthisextensively.TheissuenowisthatTLS/SSLmoduleisnotloadingcorrectlytoevenverifythecertificates.Windows10Anaconda2018.12
- windows注册表详解
ywwow
计算机科学与技术windowsmicrosoftsystem磁盘dos网络
偶尔得转点文章。空格键坏了,想用修改键盘映射的方法来代替一下,于是就找到了注册表。然后在不断的搜索中,发现了这篇有点收藏价值的文章,转过来保存下。windows注册表详解http://blog.donews.com/converter/archive/2004/09/16/100404.aspx注册表对有的人还是比较陌生的,因为现在第三方软件太多了,如优化大师、魔法兔子等等,但个人觉得改善系统的第
- 【Windows】修改C盘下用户名
weixin_30872867
操作系统
假设原用户名为Icon,需改为Ping。先新建一个管理员账户,然后注销当前用户,以新建的管理员账户登录;重命名C:\Users\Icon为C:\Users\Ping;打开注册表编辑器(win+R输入regedit),定位到HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\ProfileList的某一子项,将“数据名称”为P
- SQL教程-关于SELECT的高级语法
假客套
SQLsql数据库
一、TOP/LIMIT取值第几行到第几行#SQLServer/MSAccess语法SELECTTOP具体的行数|数据集的百分比字段1,字段2,...FROM数据表名#MySQL语法SELECT字段1,字段2,...FROM数据表名LIMIT具体的行数二、LIKE条件查询模糊或精准查询使用%通配符找出所有名称以"张"开头的数据【%替代0个或多个字符】SELECT*FROM数据表名WHERE字段1LI
- 安装Anaconda之后,Anaconda Navigator打不开
阿尔法星球
pythonpython
如果安装Anaconda之后无法打开AnacondaNavigator,可以尝试以下步骤来解决问题:重新启动计算机:有时候,简单的重新启动计算机可以解决安装后的一些问题。检查Anaconda安装:打开命令行窗口(Windows的CMD或PowerShell,macOS和Linux的终端),输入以下命令来检查Anaconda的安装情况:conda--version如果Anaconda安装正确,这将显
- cesium学习
qq_45660256
前端
cesium学习一、Cesium初始化CesiumWidget才是核心类\color{red}CesiumWidget才是核心类CesiumWidget才是核心类定义assessTokenCesium.Ion.defaultAccessToken='在Cesium官网中申请的token'实例化cesiumArcGIS影像图层constesri=newCesium.ArcGisMapServerIm
- golang语言在使用httplib包中遇到的关于自建证书的问题及解决方案
dg1011
golang服务器
1.前言创建自建证书私钥生成:opensslgenrsa-des3-outserver.key2048opensslrsa-inserver.key-outserver.keyCA生成:opensslreq-new-x509-keyserver.key-outca.crt-days3650csr生成:opensslreq-new-keyserver.key-outserver.csr证书生成:op
- 安装openssl报错:openssl: symbol lookup error: openssl: undefined symbol: EVP_mdc2, version OPENSSL_1_1_0
dg1011
linux
首先,安装网上教程对openssl进行了安装sudowgethttps://www.openssl.org/source/openssl-1.1.1t.tar.gz如果Linux系统没网,可现在windows上下载压缩文件,再传到Linux系统直接在浏览器输入https://www.openssl.org/source/openssl-1.1.1t.tar.gz就可以下载下来然后进行安装#将安装包
- ESP32-C3 VScode开发环境搭建(基于ESP-IDF—Windows和Ubuntu双环境)_esp32只能基于windows平台开发吗
2401_87555613
vscodewindowsubuntu
2.3.1VScode插件配置2.3.2工程编译测试2.3.2烧录一、Windows环境下安装1.1安装Git直接搜索Git,到官方网站下载,地址:Git官方下载地址下载完毕,双击安装:除了开始选择一下安装路径,后面大部分默认就可以:安装完成,点击Finish即可:安装完成以后记得添加一下环境变量(现在软件很多都可以自动添加环境变量,在安装的时候选择一下AddtoPATH,如果没有自动添加环境变量
- Cesium ArcGisMapServerImageryProvider API 介绍
WebGISer_白茶乌龙桃
Cesium关键API学习javascript开发语言ecmascript
作为一名GIS研究生,WebGIS技术无疑是我们必学的核心之一。说到WebGIS,要提的就是Cesium——这个让3D地球可视化变得简单又强大的工具。为了帮助大家更好地理解和使用Cesium,我决定把我自己在学习Cesium文档过程中的一些心得和收获分享给大家。大家一起交流,一起进步!在Cesium中,ArcGisMapServerImageryProvider是一个非常有用的API,它允许开发者
- 中间件 | RocketMq - [broker 配置]
问仙长何方蓬莱
中间件rocketmq
INDEXbroker.confbroker.conf干货见注释###集群名brokerClusterName=DefaultCluster###nameserver#nameserver地址namesrvAddr=192.168.3.76:9876###broker#broker名,同名则主从brokerName=a-m#brokerid,唯一brokerId=0#borker端口listenP
- Python 3.8 64位安装包:为Windows用户提供高效编程体验
郎磊权Halden
Python3.864位安装包:为Windows用户提供高效编程体验项目地址:https://gitcode.com/open-source-toolkit/061a8项目介绍Python3.864位安装包是一个专为Windows操作系统设计的Python编程语言安装包。Python3.8作为Python编程语言的一个重要版本,不仅继承了Python一贯的简洁易用特性,还引入了许多新功能和改进,使
- Python | python3.8安装教程(Windows环境)
一只野生猿人
python
摘要:本文将介绍python的安装教程,适用于首次安装python的用户官网链接:https://www.python.org/配置说明运行环境:Windows11安装版本:python3.8.01、下载安装程序进入官网,选择Windows版本下载在下载列表中选择64位的安装程序二、安装python3.8.0先勾选下方两个选项,并选择自定义安装勾选下方三个选项,并点击下一步先勾选下方两个选项,再修
- RocketMQ的集群架构是怎样的
还能在学一小时
十七Rocketmqjava-rocketmqrocketmq架构
RocketMQ的集群架构包括四个主要角色:NameServer集群、Broker主从集群、Producer和Consumer客户端。NameServer集群是RocketMQ的一种轻量级的服务节点,负责注册和管理Broker的服务地址,提供服务的注册和发现功能。每个Broker节点都要跟所有的NameServer节点建立长连接,定义注册Topic路由信息和发送心跳。每个NameServer节点都
- OAuth2.0集成SpringSecurity加JWT实现单点登录
Nicky.Ma
#OAuth2.0#单点登录#springbootjwtOAuth2.0SSO单点登录
OAuth2.0系列之集成SpringSecurity+JWT实现单点登录SSO一、SSO简介1.1单点登录定义1.2单点登录角色1.3单点登录分类二、OAuth2.02.1OAuth2.0简介2.2OAuth2.0角色2.3协议流程2.4授权模式三、单点登录实现3.1环境准备3.2OAuth2.0授权服务器3.2.1新建SpringBoot项目3.2.2@EnableResourceServer
- sqlserver 字段值拼接
qq_36608622
sqlserver数据库
在SQLServer中,拼接字段(即合并多个字段的值为一个单一的字符串)可以通过多种方法实现。以下是几种常见的字段拼接技术:1.使用+运算符这是早期版本SQLServer中最常用的字段拼接方法,适用于字符串类型的字段。如果字段中存在NULL值,使用+进行拼接时,整个结果会变为NULL。为了避免这种情况,可以使用ISNULL或COALESCE函数确保即使某个字段为NULL,也能得到非空结果:SELE
- 使用Ollama部署deepseek大模型
使用Ollama部署deepseek大模型前置条件使用英伟达显卡下载cuda驱动https://developer.nvidia.com/cuda-downloadsOllamaOllama官方版:https://ollama.com/我的显卡在Windows电脑上面所以使用Windows的安装方式去安装若你的显卡是在Linux上面可以使用如下命令安装curl-fsSLhttps://ollama
- ambari-server页面错位问题解决
王木头
ambarihadoop大数据
背景:项目新安装的ambari集群页面错位如下解决办法(临时):修改ambari-server的前端文件:/usr/lib/ambari-server/web/javascripts/app.js原代码:initNavigationBar:function(){if(App.get('router.mainController.isClusterDataLoaded')){$('body').on
- Springboot mysql配置和连接
奶龙牛牛
springbootmysqljava
spring.datasource.url=jdbc:mysql://localhost:3306/tedu_store?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghaispring.datasource.username=rootspring.datasource.password=123456mysqlmy
- 【网站架构部署与优化】Tomcat优化、Tomcat多实例部署
Karoku066
架构tomcatfirefoxlinux运维服务器bash
文章目录Tomcat优化Tomcat配置文件参数优化示例配置TomcatJVM参数配置参数解释注意总结Tomcat配置文件参数优化(`server.xml`)1.线程池参数2.网络连接参数3.性能优化参数Java虚拟机(JVM)调优1.堆内存设置2.新生代和老年代设置3.垃圾收集器设置4.其他性能优化参数常见错误及解决方法Tomcat多实例部署1.安装JDK和Tomcat2.配置Tomcat环境变
- Python 如何使用访问Windows共享文件夹
蜡笔小新星
pythonwindows开发语言经验分享
文章目录引言前置条件步骤一:导入必要的模块步骤二:配置连接参数步骤三:实例化SMB连接对象并尝试连接步骤四:列出共享文件夹中的文件与文件夹步骤五:下载与上传文件(可选)步骤六:处理连接错误错误排查指南结论引言本教程旨在帮助您使用pysmb库,通过SMB(ServerMessageBlock)协议,轻松连接到Windows共享文件夹,并列举其中的文件与文件夹。此外,我们还将简要介绍如何下载和上传文件
- YOLO系列之训练环境(GPU)搭建篇
w94ghz
YOLO改进系列YOLOv8改进系列YOLO深度学习人工智能python目标检测
YOLOv8专栏导航:点击此处跳转Pytorch环境配置(Windows)Anaconda安装此处下载安装即可⭐温馨提示:安装路径
- windows实用:删除右键菜单功能项
EelBarb
windows
前言当在使用windows,仅仅想要通过右键删除某个文件时,密密麻麻无关甚至不常用的右键菜单功能项往往让你感到厌恶。为了删除右键无用的功能项,这里给将给出一些具体方案。删除右键无用菜单功能项1、更改软件配置,取消软件扩展的右键功能项如果是【还算比较有良心】的软件,一般在设置里有取消右键菜单项的选项,只需要取消勾选即可。2、删除菜单注册表中的栏目有些软件比较无理,设置里也没留解决方案,所以这里只能被
- ASM系列四 利用Method 组件动态注入方法逻辑
lijingyao8206
字节码技术jvmAOP动态代理ASM
这篇继续结合例子来深入了解下Method组件动态变更方法字节码的实现。通过前面一篇,知道ClassVisitor 的visitMethod()方法可以返回一个MethodVisitor的实例。那么我们也基本可以知道,同ClassVisitor改变类成员一样,MethodVIsistor如果需要改变方法成员,注入逻辑,也可以
- java编程思想 --内部类
百合不是茶
java内部类匿名内部类
内部类;了解外部类 并能与之通信 内部类写出来的代码更加整洁与优雅
1,内部类的创建 内部类是创建在类中的
package com.wj.InsideClass;
/*
* 内部类的创建
*/
public class CreateInsideClass {
public CreateInsideClass(
- web.xml报错
crabdave
web.xml
web.xml报错
The content of element type "web-app" must match "(icon?,display-
name?,description?,distributable?,context-param*,filter*,filter-mapping*,listener*,servlet*,s
- 泛型类的自定义
麦田的设计者
javaandroid泛型
为什么要定义泛型类,当类中要操作的引用数据类型不确定的时候。
采用泛型类,完成扩展。
例如有一个学生类
Student{
Student(){
System.out.println("I'm a student.....");
}
}
有一个老师类
- CSS清除浮动的4中方法
IT独行者
JavaScriptUIcss
清除浮动这个问题,做前端的应该再熟悉不过了,咱是个新人,所以还是记个笔记,做个积累,努力学习向大神靠近。CSS清除浮动的方法网上一搜,大概有N多种,用过几种,说下个人感受。
1、结尾处加空div标签 clear:both 1 2 3 4
.div
1
{
background
:
#000080
;
border
:
1px
s
- Cygwin使用windows的jdk 配置方法
_wy_
jdkwindowscygwin
1.[vim /etc/profile]
JAVA_HOME="/cgydrive/d/Java/jdk1.6.0_43" (windows下jdk路径为D:\Java\jdk1.6.0_43)
PATH="$JAVA_HOME/bin:${PATH}"
CLAS
- linux下安装maven
无量
mavenlinux安装
Linux下安装maven(转) 1.首先到Maven官网
下载安装文件,目前最新版本为3.0.3,下载文件为
apache-maven-3.0.3-bin.tar.gz,下载可以使用wget命令;
2.进入下载文件夹,找到下载的文件,运行如下命令解压
tar -xvf apache-maven-2.2.1-bin.tar.gz
解压后的文件夹
- tomcat的https 配置,syslog-ng配置
aichenglong
tomcathttp跳转到httpssyslong-ng配置syslog配置
1) tomcat配置https,以及http自动跳转到https的配置
1)TOMCAT_HOME目录下生成密钥(keytool是jdk中的命令)
keytool -genkey -alias tomcat -keyalg RSA -keypass changeit -storepass changeit
- 关于领号活动总结
alafqq
活动
关于某彩票活动的总结
具体需求,每个用户进活动页面,领取一个号码,1000中的一个;
活动要求
1,随机性,一定要有随机性;
2,最少中奖概率,如果注数为3200注,则最多中4注
3,效率问题,(不能每个人来都产生一个随机数,这样效率不高);
4,支持断电(仍然从下一个开始),重启服务;(存数据库有点大材小用,因此不能存放在数据库)
解决方案
1,事先产生随机数1000个,并打
- java数据结构 冒泡排序的遍历与排序
百合不是茶
java
java的冒泡排序是一种简单的排序规则
冒泡排序的原理:
比较两个相邻的数,首先将最大的排在第一个,第二次比较第二个 ,此后一样;
针对所有的元素重复以上的步骤,除了最后一个
例题;将int array[]
- JS检查输入框输入的是否是数字的一种校验方法
bijian1013
js
如下是JS检查输入框输入的是否是数字的一种校验方法:
<form method=post target="_blank">
数字:<input type="text" name=num onkeypress="checkNum(this.form)"><br>
</form>
- Test注解的两个属性:expected和timeout
bijian1013
javaJUnitexpectedtimeout
JUnit4:Test文档中的解释:
The Test annotation supports two optional parameters.
The first, expected, declares that a test method should throw an exception.
If it doesn't throw an exception or if it
- [Gson二]继承关系的POJO的反序列化
bit1129
POJO
父类
package inheritance.test2;
import java.util.Map;
public class Model {
private String field1;
private String field2;
private Map<String, String> infoMap
- 【Spark八十四】Spark零碎知识点记录
bit1129
spark
1. ShuffleMapTask的shuffle数据在什么地方记录到MapOutputTracker中的
ShuffleMapTask的runTask方法负责写数据到shuffle map文件中。当任务执行完成成功,DAGScheduler会收到通知,在DAGScheduler的handleTaskCompletion方法中完成记录到MapOutputTracker中
- WAS各种脚本作用大全
ronin47
WAS 脚本
http://www.ibm.com/developerworks/cn/websphere/library/samples/SampleScripts.html
无意中,在WAS官网上发现的各种脚本作用,感觉很有作用,先与各位分享一下
获取下载
这些示例 jacl 和 Jython 脚本可用于在 WebSphere Application Server 的不同版本中自
- java-12.求 1+2+3+..n不能使用乘除法、 for 、 while 、 if 、 else 、 switch 、 case 等关键字以及条件判断语句
bylijinnan
switch
借鉴网上的思路,用java实现:
public class NoIfWhile {
/**
* @param args
*
* find x=1+2+3+....n
*/
public static void main(String[] args) {
int n=10;
int re=find(n);
System.o
- Netty源码学习-ObjectEncoder和ObjectDecoder
bylijinnan
javanetty
Netty中传递对象的思路很直观:
Netty中数据的传递是基于ChannelBuffer(也就是byte[]);
那把对象序列化为字节流,就可以在Netty中传递对象了
相应的从ChannelBuffer恢复对象,就是反序列化的过程
Netty已经封装好ObjectEncoder和ObjectDecoder
先看ObjectEncoder
ObjectEncoder是往外发送
- spring 定时任务中cronExpression表达式含义
chicony
cronExpression
一个cron表达式有6个必选的元素和一个可选的元素,各个元素之间是以空格分隔的,从左至右,这些元素的含义如下表所示:
代表含义 是否必须 允许的取值范围 &nb
- Nutz配置Jndi
ctrain
JNDI
1、使用JNDI获取指定资源:
var ioc = {
dao : {
type :"org.nutz.dao.impl.NutDao",
args : [ {jndi :"jdbc/dataSource"} ]
}
}
以上方法,仅需要在容器中配置好数据源,注入到NutDao即可.
- 解决 /bin/sh^M: bad interpreter: No such file or directory
daizj
shell
在Linux中执行.sh脚本,异常/bin/sh^M: bad interpreter: No such file or directory。
分析:这是不同系统编码格式引起的:在windows系统中编辑的.sh文件可能有不可见字符,所以在Linux系统下执行会报以上异常信息。
解决:
1)在windows下转换:
利用一些编辑器如UltraEdit或EditPlus等工具
- [转]for 循环为何可恨?
dcj3sjt126com
程序员读书
Java的闭包(Closure)特征最近成为了一个热门话题。 一些精英正在起草一份议案,要在Java将来的版本中加入闭包特征。 然而,提议中的闭包语法以及语言上的这种扩充受到了众多Java程序员的猛烈抨击。
不久前,出版过数十本编程书籍的大作家Elliotte Rusty Harold发表了对Java中闭包的价值的质疑。 尤其是他问道“for 循环为何可恨?”[http://ju
- Android实用小技巧
dcj3sjt126com
android
1、去掉所有Activity界面的标题栏
修改AndroidManifest.xml 在application 标签中添加android:theme="@android:style/Theme.NoTitleBar"
2、去掉所有Activity界面的TitleBar 和StatusBar
修改AndroidManifes
- Oracle 复习笔记之序列
eksliang
Oracle 序列sequenceOracle sequence
转载请出自出处:http://eksliang.iteye.com/blog/2098859
1.序列的作用
序列是用于生成唯一、连续序号的对象
一般用序列来充当数据库表的主键值
2.创建序列语法如下:
create sequence s_emp
start with 1 --开始值
increment by 1 --増长值
maxval
- 有“品”的程序员
gongmeitao
工作
完美程序员的10种品质
完美程序员的每种品质都有一个范围,这个范围取决于具体的问题和背景。没有能解决所有问题的
完美程序员(至少在我们这个星球上),并且对于特定问题,完美程序员应该具有以下品质:
1. 才智非凡- 能够理解问题、能够用清晰可读的代码翻译并表达想法、善于分析并且逻辑思维能力强
(范围:用简单方式解决复杂问题)
- 使用KeleyiSQLHelper类进行分页查询
hvt
sql.netC#asp.nethovertree
本文适用于sql server单主键表或者视图进行分页查询,支持多字段排序。KeleyiSQLHelper类的最新代码请到http://hovertree.codeplex.com/SourceControl/latest下载整个解决方案源代码查看。或者直接在线查看类的代码:http://hovertree.codeplex.com/SourceControl/latest#HoverTree.D
- SVG 教程 (三)圆形,椭圆,直线
天梯梦
svg
SVG <circle> SVG 圆形 - <circle>
<circle> 标签可用来创建一个圆:
下面是SVG代码:
<svg xmlns="http://www.w3.org/2000/svg" version="1.1">
<circle cx="100" c
- 链表栈
luyulong
java数据结构
public class Node {
private Object object;
private Node next;
public Node() {
this.next = null;
this.object = null;
}
public Object getObject() {
return object;
}
public
- 基础数据结构和算法十:2-3 search tree
sunwinner
Algorithm2-3 search tree
Binary search tree works well for a wide variety of applications, but they have poor worst-case performance. Now we introduce a type of binary search tree where costs are guaranteed to be loga
- spring配置定时任务
stunizhengjia
springtimer
最近因工作的需要,用到了spring的定时任务的功能,觉得spring还是很智能化的,只需要配置一下配置文件就可以了,在此记录一下,以便以后用到:
//------------------------定时任务调用的方法------------------------------
/**
* 存储过程定时器
*/
publi
- ITeye 8月技术图书有奖试读获奖名单公布
ITeye管理员
活动
ITeye携手博文视点举办的8月技术图书有奖试读活动已圆满结束,非常感谢广大用户对本次活动的关注与参与。
8月试读活动回顾:
http://webmaster.iteye.com/blog/2102830
本次技术图书试读活动的优秀奖获奖名单及相应作品如下(优秀文章有很多,但名额有限,没获奖并不代表不优秀):
《跨终端Web》
gleams:http