HTTP - PUT 上传文件/Shell
今天遇到几个PUT上传的点,但是都没利用起来。一怒之下,在自己本地试了一下。步骤如下:
一、环境:
首先,根据 配置Apache服务器支持向目录PUT文件 更新一下httpd.conf文件,重启所有服务。
二、HTTP - PUT
PUT的前提,是了解HTTP协议。下面给出HTTP - PUT的一个模板:
PUT /test.txt HTTP/1.1
Accept: */*
Accept-Language: en-US
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Win32)
Host: test.com:8080 hello world
要注意如下几个点:
① PUT方法是HTTP 1.1协议中才出现的。
② HTTP协议对空格敏感,每行数据的结尾不能出现空格
③ HTTP头部和数据中间要空一行,即HTTP头部是以\r\n\r\n结尾的。
④ 端口号直接跟在HOST后面
三、第一次PUT
好了,现在可以PUT了。用Linux下的nc命令来进行连接。
nc -v www.baidu.com 80
root@bb:/etc# nc -v 192.168.163.1
nc: 192.168.163.1 (192.168.163.1) [http-alt] open
/*在得到如上输出之后,再将PUT包的内容贴到命令行中,回车*/
PUT /test.txt HTTP/1.1
Content-Length:
Accept-Language: en-US
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Win32)
Host: 192.168.163.1: hello world
/*发送的PUT包到此为止,以下为收到的数据包*/
HTTP/1.1 Internal Server Error
Date: Wed, Apr :: GMT
Server: Apache/2.2. (Win64) PHP/5.3. DAV/
Content-Length:
Connection: close
Content-Type: text/html; charset=iso-- <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title> Internal Server Error</title>
</head><body>
<h1>Internal Server Error</h1>
<p>The server encountered an internal error or misconfiguration and was unable to complete your request.</p>
<p>Please contact the server administrator, admin@localhost and inform them of the time the error occurred,and anything you might have done that may have caused the error.</p>
<p>More information about this error may be available in the server error log.</p>
</body></html>
好像不对啊,500是服务器内部错误啊。好吧好吧,我们去看看主机的Apache日志。
四、再次配环境
主机用的是WAMP,日志在/wamp/logs/apache_error.log。找到对应的那一条:
通过浏览器搜索,又找到一篇日志。Linux(CentOS) 服务端搭建与配置,原来用HTTP - PUT还要添加一个什么锁。
DavLockDB DavLock #目录没有就创建(DavLock 为文件名,应该有的目录结构是\wamp\bin\apache\Apache2.2.21\DavLock)
root@bb:/etc# nc -v 192.168.163.1
nc: 192.168.163.1 (192.168.163.1) [http-alt] open
PUT /test.txt HTTP/1.1
Content-Length:
Accept-Language: en-US
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Win32)
Host: 192.168.163.1: hello world
HTTP/1.1 Created
Date: Wed, Apr :: GMT
Server: Apache/2.2. (Win64) PHP/5.3. DAV/
Location: http://192.168.163.1:8080/test.txt
Content-Length:
Content-Type: text/html; charset=ISO-- <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title> Created</title>
</head><body>
<h1>Created</h1>
<p>Resource /test.txt has been created.</p>
</body></html>
0。0 差不多这样,之后有更多关于PUT的经验,再分享
HTTP - PUT 上传文件/Shell的更多相关文章
- HTTP - PUT 上传文件/Shell (二)
上一篇文章 HTTP - PUT 上传文件/Shell 讲到自己搭了一个环境,去测试HTTP - PUT上传Shell.最近又遇到几个PUT上传的例子,也成功上传了几次,来分享一下思密达. 0x00 ...
- linux 执行远程linux上的shell脚本或者命令以及scp 上传文件到ftp--免密码登陆
场景:在linux A 上执行Linux B上的shell脚本和命令 步骤1.设置ssh免登陆 1.SSH无密码登录 # 本地服务器执行(A机器):生成密钥对 ssh-keygen -t dsa -P ...
- 批量上传文件到HDFS的Shell脚本
在做Hadoop数据挖掘项目的时候,我们第一步是源数据的获取,即把相应的数据放置到HDFS中,以便Hadoop进行计算,手动将文件上传到HDFS中,未免太费时费力,所以我们可以采取像Flume一样的框 ...
- shell中利用ftp 上传文件夹功能
我们知道ftp 只能用来上传或者下载文件,一次单个或者多个,怎么实现将文件夹的上传和下载呢? 可以利用先在remote ip上建立一个相同的文件夹目录,然后将文件放到各自的目录中去 1.循环遍历出要上 ...
- Shell脚本调用ftp上传文件
Shell脚本调用ftp上传文件 1.脚本如下 ftp -n<<! open x.x.x.x ###x.x.x.x为ftp地址 user username password ###user ...
- C#远程执行Linux系统中Shell命令和SFTP上传文件
一.工具:SSH.Net 网址:https://github.com/sshnet/SSH.NET 二.调用命令代码: Renci.SshNet.SshClient ssh = "); ss ...
- Go连接到Linux服务器进行操作-执行shell命令&&上传文件
Go连接到Linux服务器进行操作 使用密码连接Linux服务器 package main import ( "fmt" "golang.org/x/crypto/ssh ...
- scp 上传文件到多个服务器节点
参考:scp批量上传文件到多台机器上(升级版) 实测,代码可运行. 1.如果遇到syntax error near unexpected token问题,基本是由于windows环境下编写的shell ...
- c#连接SFTP上传文件
名词解释(百度百科) sftp是Secure File Transfer Protocol的缩写,安全文件传送协议.可以为传输文件提供一种安全的加密方法.sftp 与 ftp 有着几乎一样的语法和功能 ...
随机推荐
- 2.CentOS更换阿里源
第一步:备份本地yum源 mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup 第二步:下载阿里y ...
- 关于SWT/JFace中其他常用的事件
1.addSelectionListener:这个监听器最常用. 这个addSelectionListener是一个方法,addSelectionListener(SelectionListener ...
- 【C语言】函数和自定义函数
函数,我之前也提到过一点点内容.其实函数是很好理解的,但是写起来又十分麻烦. 一. 函数引入 我们知道,C源程序是由函数组成的.请看下面的简单函数例子 #include <stdio.h ...
- 浅谈用java解析xml文档(四)
继续接上一文,这一阵子因为公司项目加紧,导致最后一个解析xml文档的方式,还没有总结,下面总结使用dom4J解析xml. DOM4J(Document Object Model for Java) 使 ...
- 20150503-struts2入门-标签
一.几个标签介绍 1.property标签 property标签用于输出指定值: <s:set name="name" value="'kk'" /> ...
- SQL 树结构统计数据
create table #Tmp( ID int IDENTITY (1,1) not null, name varchar(50), sl int); DECLARE @ID VARCHAR(36 ...
- WIN8+VS2013编写发布WCF之一(编写)
引言:上学期因为写服务器用WCF,所以连查资料再瞎调试勉强成功了,但是这学期又到了用WCF的时候,而当时的资料零零散散,查找不易,并且此次是在WIN8与VS2013环境下编写的,所以将该入门过程记 ...
- aspx文件移动到新建的文件夹中设置路径的问题
项目中仅仅把aspx移动到想要的文件夹内是会出错的,不用想也知道是路径问题.这里我就说这个路径该如何去修改. 两个地方需要修改:1.母版路径修改方法: <link href="Styl ...
- Android基础之Activity
一.什么是Activity Activity是Android四大组件之一,并且Activity是组件中的重中之重. Activity是为用户提供一个用于信息交互的窗口. 二.如何去创建Activity ...
- undrop for innodb c_parser 源码分析
一,主函数功能: 1,分析命令行参数,保存在全局变量中; 2,打开文件,加载表定义sql,调用分析函数开始处理; 3,打印导入数据的sql语句; 二,文件处理函数,void process_ibfil ...