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 有着几乎一样的语法和功能 ...
随机推荐
- Visual Studio 2012 Web一键式发布
按照保哥的介绍,尝试“ Web一键式发布”,但总是出错,主要就是404错误,不知道是什么原因.默认的 Web一键式发布是在C:\inetpub\wwwroot目录下,难道是权限问题?折腾N久无果.好吧 ...
- 警告:Pointer is missing a nullability type specifier (__nonnull or __nullable)
当我们定义某个属性的时候 如果当前使用的编译器版本比较高(6.3+)的话经常会遇到这样一个警告: 而且奇怪的是在某些文件中定义这个属性是没有任何警告的 但是在某些文件中定义同样的属性就会报错: 其实 ...
- jquery通过ajax方法获取json数据不执行success回调
问题描述:jquery通过ajax方法获取json数据不执行success回调方法 问题原因:json格式存在问题或不符合标准写法,导致总是执行error回调方法 解决方案:使json格式务必符合下述 ...
- 我、实战nginx+naxsi(WAF)之一
差不多,一个星期多的时间都过去了.但是还是感觉时间过的太快,总是不禁的让人长叹一声,关于nginx和(naxsi)WAF这个问题,也算是只走出了第一步,在遇到了各种乱七八糟的错误之后总算是想要静下心来 ...
- Oracle删除重复数据的几种常用方法
1.有可区分的主键,其他数据相同 select * from 表名 dl where dl.id not in (select min(d.id) from 表名 d group by 重复列) 2 ...
- 最佳vim技巧
最佳vim技巧----------------------------------------# 信息来源----------------------------------------www.vim ...
- php 统计在线人数,今日访问量,总访问量
直接复制到本站点下测试即可 代码如下: <?php header('Content-type: text/html; charset=utf-8');$online_log = "co ...
- JAXB - Annotations, Annotations for the Schema: XmlSchema
This annotation can only be used with a package. It defines parameters that are derived from the xsd ...
- Memcached 工作原理
http://hzp.iteye.com/blog/1872664 Memcached处理的原子是每一个(key,value)对(以下简称kv对),key会通过一个hash算法转化成hash-key, ...
- elfinder-2.x的java servlet后端——elfinder-2.x-servlet
去年在美期间在外导的项目中,需要用到el-finder的完美界面,但苦于没有java后端,因此做了一个elfinder-2.x-servlet. 托管地址:https://github.com/blu ...