标签: http

什么工具允许我在 Web 服务器上将手册页显示为格式化的 HTML?

有哪些工具可以通过 HTTP 使系统上的手册页可用并将主题链接在一起,以便各SEE ALSO节和其他地方的引用将成为手册页的 HTML 表示中的超链接?

我目前正在使用 Debian (6) 和 Ubuntu (10.04, 10.10),所以现有的软件包将是首选,但如果它们明显优越,我也会选择任何其他解决方案。

man ubuntu debian html http

5
推荐指数
1
解决办法
351
查看次数

wget 正在返回一个 html 页面而不是原始文件

就我而言,问题出在 SourceForge.net 上。其实我是想下载这些文件:

http://sourceforge.net/projects/wxpython/files/wxPython/2.9.4.0/wxPython-src-2.9.4.0.tar.bz2/download
http://sourceforge.net/projects/wxpython/files/wxPython/2.9.4.0/wxPython-docs-2.9.4.0.tar.bz2/download
Run Code Online (Sandbox Code Playgroud)

事情并不顺利,所以我记录了wget,日志文件是:

--2012-08-21 09:52:17--  http://sourceforge.net/projects/wxpython/files/wxPython/2.9.4.0/wxPython-src-2.9.4.0.tar.bz2/download
Resolving sourceforge.net... 216.34.181.60
Connecting to sourceforge.net|216.34.181.60|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 18846 (18K) [text/html]
Saving to: `download'

     0K .......... ........                                   100% 6.30K=2.9s

2012-08-21 09:52:25 (6.30 KB/s) - `download' saved [18846/18846]

--2012-08-21 09:52:25--  http://sourceforge.net/projects/wxpython/files/wxPython/2.9.4.0/wxPython-docs-2.9.4.0.tar.bz2/download
Connecting to sourceforge.net|216.34.181.60|:80... connected.
HTTP request sent, awaiting response... 200 OK

    The file is already fully retrieved; nothing to do.

FINISHED --2012-08-21 09:52:28--
Downloaded: 1 files, 18K in 2.9s (6.30 KB/s)
Run Code Online (Sandbox Code Playgroud)

正如你在这个日志文件中看到的,我最终得到了一个 …

io-redirection wget http

5
推荐指数
1
解决办法
1万
查看次数

发送 HTTP 标头的第一行

正常的 HTTP 请求可能如下所示:

获取/HTTP/1.1
主机:example.com

我想用自定义的方式更改此请求的第一行,例如:

FOOBAR 不是真正的 HTTP
主机:example.com

是否可以使用curl或其他工具来做到这一点,能够做到这一点?

http curl

5
推荐指数
1
解决办法
589
查看次数

每 2 小时 logrotate

我正在尝试每 2 小时制作一次 httpry 日志。我将此添加到我的logrotate.conf文件中:

/var/log/httpry/*.log {
    rotate 1
    weekly
    create 640 root admin
    missingok
    notifempty
}
Run Code Online (Sandbox Code Playgroud)

我尝试将每周更改为每小时(仍然需要每 2 小时更改一次),但它不起作用。我阅读将脚本从 cron.daily 复制到 cron.hourly 但我所有的 cron 文件都是空的。

如何每 2 小时创建一个新的日志文件?

logs ubuntu logrotate http

5
推荐指数
1
解决办法
1万
查看次数

使用 socat 隧道/代理 TCP 想要将发送/接收拆分为单独的文件

我正在使用socat转储普通 TCP(例如 HTTP)流量:

socat -v tcp-listen:$PORT,reuseaddr,fork,keepalive tcp:$TARGET_HOST:$TARGET_PORT
Run Code Online (Sandbox Code Playgroud)

目前,所有发送和接收流量都转储到输出流中。我想将发送/接收拆分为单独的文件。

问题

  • 有没有办法自己做到这一点socat而不使用任何外部文本处理工具?
  • 有没有办法从输出中删除 HTTP 块分隔符,或者要求太多?

proxy tcp http socat

5
推荐指数
0
解决办法
797
查看次数

为什么 Android 的 Captive Portal 检测不会触发浏览器窗口?

我有一个使用 nginx 托管一个简单网站的 Raspberry Pi。RPi 充当无线接入点 - 用户可以连接到其无线网络,RPi 为他们提供一个 IP(它运行 DHCP 服务器),他们可以访问该站点。

因为 RPi 实际上并不为用户提供互联网(只有这一个站点),所以我让用户更容易找到该站点。我没有知道该站点的确切 URL,而是告诉我的 dns 服务器 (dnsmasq),DHCP 服务器告诉客户端使用它来解析对我的 RPi (192.168.30.1) 的 LAN IP 的所有查询。

此时,我的 nginx 在其配置中有一个条目,内容为:

  • 如果用户请求的主机字段不是 MyRPiServer.com,则发送 302 重定向到 MyRPiServer.com
  • 如果主机是MyRPiServer.com,则服务本地网站

这很棒。

我想更进一步。当 Android 连接到无线网络时,它会尝试连接到http://connectivitycheck.gstatic.com/generate_204(或其他类似的谷歌页面之一),专门检查请求是否被重定向。如果它得到 204 代码,则假定一切正常。如果没有,则假定它位于强制门户后面,并弹出一个浏览器窗口,打开强制门户登录。

出于某种原因,当我告诉 nginx 使用 302 重定向或什至 200(带有一些文本)响应对 generate_204 页面的请求时,Android 不会弹出浏览器。

我有一个带有内置热点功能的 mikrotik 路由器,它确实让 android 使用强制门户登录(在同一个测试手机上)弹出浏览器。当我查看它发送给我的客户端的流量时,它是一个简单的 HTTP 200,带有一些文本,就像我的一样。

似乎可行的一件事是,如果我禁用 DNS 服务器将所有内容解析为 192.168.30.1,并使用 iptables 将端口 80 重定向到我的 RPi 上的 localhost。

有谁知道为什么在 Android 的 Captive Portal 检测中重定向端口 80 有效,但配置 DNS 服务器以将所有内容解析为 …

webserver android http nginx

5
推荐指数
1
解决办法
9190
查看次数

显示带有 unix 域套接字的网页

有没有办法从本地运行的 tcp 服务器上提供网页服务,该服务器监听 unix 域套接字而不是localhost:<port>

就像是:

file:///tmp/webpage.sock
Run Code Online (Sandbox Code Playgroud)

我唯一真正的动机是避免 2000-5000 范围内的端口冲突。

chrome browser tcp http unix-sockets

5
推荐指数
1
解决办法
1013
查看次数

我怎么能看到全部的转储?HTTP数据包?

我需要查看应用程序发送和接收的整个 HTTP 数据包以进行调试。这如何在命令行中完成?

networking monitoring http

4
推荐指数
2
解决办法
3267
查看次数

在同一行 curl 命令后回显文本

#!/bin/bash
echo "$(curl -s -I https://google.com|grep Server)" abc
Run Code Online (Sandbox Code Playgroud)

返回:

abcer: gws
Run Code Online (Sandbox Code Playgroud)

bash -x显示:

++ grep Server
++ curl -s -I https://google.com
' abco 'Server: gws
 abcer: gws
Run Code Online (Sandbox Code Playgroud)

echo abc "$(curl -s -I https://google.com|grep Server)"` 
Run Code Online (Sandbox Code Playgroud)

返回

abc Server: gws
Run Code Online (Sandbox Code Playgroud)

换句话说,如果我在 curl 命令之后添加文本,它会被破坏,但是如果我在 curl 之前添加它就可以了。
怎么了?我想不明白。

http curl newlines

4
推荐指数
1
解决办法
2万
查看次数

如何使用现有的 tcp 连接从 bash 脚本访问 http 服务器?

在 bash shell scipt 中,我使用了几个命令行工具(wgetcurlhttpie)来测试我的 http 服务器。

当使用例如 curl 调用 GET 请求时,我看到一个 tcp 连接被打开到我的服务器并在 http 通信完成后立即关闭。

$ curl http://10.5.1.1/favicon.ico -o /dev/null 
Run Code Online (Sandbox Code Playgroud)

为了更好地测试我的服务器的保持活动行为,我希望在多个 http 请求/响应周期内保持 tcp 连接打开。

我可以像这样直接从 bash 执行糟糕的 http 请求:

exec 3<>/dev/tcp/10.5.1.1/80
printf "GET /\r\n\r\n" >&3
while IFS= read -r -u3 -t2 line || [[ -n "$line" ]]; do echo "$line"; done
exec 3>&-
exec 3<&-
Run Code Online (Sandbox Code Playgroud)

但是因为我的测试通信要复杂得多(包括身份验证等),我不想完全自己用 bash 或其他脚本语言编写代码,而是想使用现有工具。现在的想法是首先在 bash 中打开一个 tcp 套接字,然后强制某些命令行工具使用此连接而不是打开自己的套接字。也许是这样;

exec 3<>/dev/tcp/10.5.1.1/80
curl http://10.5.1.1/message.txt --use-existing-socket-fd=3
# ... do some other …
Run Code Online (Sandbox Code Playgroud)

bash wget tcp http curl

4
推荐指数
1
解决办法
5662
查看次数