{"id":23360633,"url":"https://github.com/richardsondev/http_trace","last_synced_at":"2025-04-07T20:51:14.167Z","repository":{"id":269040458,"uuid":"903616858","full_name":"richardsondev/http_trace","owner":"richardsondev","description":"An application for sending HTTP TRACE requests to debug request flows.","archived":false,"fork":false,"pushed_at":"2025-04-01T17:08:32.000Z","size":22,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-04T12:38:30.826Z","etag":null,"topics":["debugging-tools","http-debugging","http-requests","http-trace","network-testing","rust","server-debugging","trace-method","trace-response"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/richardsondev.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-12-15T04:30:01.000Z","updated_at":"2025-04-01T17:08:29.000Z","dependencies_parsed_at":"2024-12-20T14:25:09.723Z","dependency_job_id":"f56a7b49-77b3-4d44-b50a-d59663fa0e2e","html_url":"https://github.com/richardsondev/http_trace","commit_stats":null,"previous_names":["richardsondev/http_trace"],"tags_count":1,"template":false,"template_full_name":"richardsondev/rustapplicationtemplate","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/richardsondev%2Fhttp_trace","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/richardsondev%2Fhttp_trace/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/richardsondev%2Fhttp_trace/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/richardsondev%2Fhttp_trace/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/richardsondev","download_url":"https://codeload.github.com/richardsondev/http_trace/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247729879,"owners_count":20986399,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["debugging-tools","http-debugging","http-requests","http-trace","network-testing","rust","server-debugging","trace-method","trace-response"],"created_at":"2024-12-21T11:15:28.565Z","updated_at":"2025-04-07T20:51:14.127Z","avatar_url":"https://github.com/richardsondev.png","language":"Rust","readme":"# http_trace\n\n`http_trace` is a Rust application that sends HTTP TRACE requests to a specified URL. It validates the URL and returns the TRACE response, which can be useful for testing servers that support the HTTP TRACE method or for debugging request flows.\n\n## What Does HTTP TRACE Return?\n\nWhen you send an HTTP TRACE request to a server that supports it, the server should return the exact request message it received, including all headers. This lets you see how intermediaries—such as proxies and load balancers—may have modified the request before it reached the server.\n\n**Note:** Many servers and proxies disable or block TRACE for security reasons. If it is enabled, a typical response might look like the below example.\n\n## Example Usage\n\n### Running the Binary\n```bash\nhttp_trace.exe http://example.com/\n```\n\n### Example Response\n```\nHTTP/1.1 200 OK\nDate: Sat, 14 Dec 2024 12:00:00 GMT\nServer: Apache/2.4.41 (Ubuntu)\nContent-Type: message/http\nContent-Length: 162\n\nTRACE / HTTP/1.1\nHost: example.com\nAccept: */*\n```\n\nIn this example, the server responds with `200 OK` and echoes the request line and headers it received. The application exits with code 0.\n\n## Getting Started\n\n### Prebuilt Binaries\n\nYou can download prebuilt binaries for various platforms from the [Releases](https://github.com/richardsondev/http_trace/releases) page. Select the binary that matches your operating system and architecture, then place it in your desired directory.\n\n### Building from Source\n\nIf you prefer to build the application from source, you will need Rust and Cargo installed.\n\n```bash\ngit clone https://github.com/richardsondev/http_trace.git\ncd http_trace\ncargo build --release\n```\n\nThis creates an optimized binary in the `target/release` directory.\n\n### Running the Application\n\nIf you are using a downloaded binary, ensure it is executable and run:\n\n```bash\n./http_trace \u003curl\u003e\n```\n\nIf you built from source, you can run the optimized binary:\n\n```bash\n./target/release/http_trace \u003curl\u003e\n```\n\nReplace `\u003curl\u003e` with the URL you want to send the TRACE request to.\n\n**Important:** If no URL is provided, or if the URL is invalid, the program will exit with an error message and a nonzero code.\n\n### Exit Codes\n\n- **0**: The TRACE request succeeded.\n- **1**: The TRACE request failed, the URL was invalid, or no URL was provided.\n\n## Local Testing with the C# Test Server\n\nA simple C# application is provided in the `test` directory to help with local development and integration testing. This application hosts a local HTTP server on `http://localhost:8080` that supports the TRACE method. You can use it to test `http_trace` locally without relying on an external server.\n\n### Setting Up the Test Server\n\n1. Navigate to the `test` folder:\n   ```bash\n   cd test\n   ```\n\n2. Build the C# test server. You will need the .NET SDK installed. For example:\n   ```bash\n   dotnet build\n   ```\n\n3. Run the server:\n   ```bash\n   dotnet run\n   ```\n   \n   The server will start listening on `http://localhost:8080`.\n\nAlternatively, you can download a prebuilt version of the test server from the latest GitHub Actions build if one is available.\n\n### Testing Against the Local Server\n\nWith the C# server running locally, you can now run `http_trace` against `http://localhost:8080`:\n\n```bash\n./target/release/http_trace http://localhost:8080\n```\n\nYou should see the TRACE request and response echoed back from the local server, allowing you to verify that the application functions as expected.\n\n## Contributing\n\nContributions are welcome! Feel free to submit a pull request. For major changes, consider opening an issue first to discuss what you would like to modify.\n\n## License\n\nThis project is licensed under the [MIT License](LICENSE).\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frichardsondev%2Fhttp_trace","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frichardsondev%2Fhttp_trace","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frichardsondev%2Fhttp_trace/lists"}