Metadata-Version: 2.1
Name: headerbreakdown
Version: 0.1.2
Summary: flattens a collection of HTTP headers into a JSON structure for automated analysis
Home-page: https://github.com/bonifield/HeaderBreakdown
Author: James Bonifield
Author-email: bonifield.tools@gmail.com
License: UNKNOWN
Platform: UNKNOWN
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Description-Content-Type: text/markdown

# HeaderBreakdown
flattens a collection of HTTP headers into a JSON structure for automated analysis

### Installation
```
pip install headerbreakdown
```

### Example Output
![headerbreakdown-summary-output.PNG](https://github.com/bonifield/HeaderBreakdown/raw/main/images/headerbreakdown-summary-output.PNG)
- this is the summary; each of these items are accessible directly as attributes; see below

### Example Usage
```
from headerbreakdown import HeaderBreakdown
import json

#
# SAMPLE HEADERS
#
# header with multiple Host and User-Agent values
H1 = "GET /?gws_rd=ssl HTTP/1.1\r\nHost: www.google.com\r\nHost: www.bing.com\r\nHost: www.yahoo.com\r\nConnection: keep-alive\r\nAccept-Encoding: gzip, deflate\r\nAccept: */*\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:57.0) Gecko/20100101 Firefox/57.0\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:57.0) Gecko/20100101 Firefox/99.0\r\nCookie: 1P_JAR=2021-03-13-04"
# single header as a plain string (with no \r\n)
H2 = "Set-Cookie: k1=v1;k2=v2"
# normal header examples that terminate with \r\n\r\n
H3 = "HTTP/1.1 302 Found\r\nLocation: https://www.google.com/?gws_rd=ssl\r\nCache-Control: private\r\nContent-Type: text/html; charset=UTF-8\r\nDate: Sat, 13 Mar 2021 04:15:44 GMT\r\nServer: gws\r\nContent-Length: 231\r\nX-XSS-Protection: 0\r\nX-Frame-Options: SAMEORIGIN\r\nSet-Cookie: 1P_JAR=2021-03-13-04; expires=Mon, 12-Apr-2021 04:15:44 GMT; path=/; domain=.google.com; Secure; SameSite=none\r\n\r\n"
H4 = "HTTP/1.1 200 OK\r\nContent-Type: application/json\r\nSet-Cookie: k1=v1;k2=v2\r\n\r\n"
H5 = "GET / HTTP/1.1\r\nHost: google.com\r\nUser-Agent: BLAHBLAH\r\nAccept: text/plain\r\n\r\n"

#
# USAGE
#
h = HeaderBreakdown(H1)
print(h.output) # dictionary
print(h.json) # string
print(h.summary)
# etc
```
### Available Attributes (all except summary included in output and json)
```
# dictionaries
	output
	nested_output
# lists
	notices
# strings
	json
	nested_json
	direction
	http_version
	method
	host
	path
	user_agent
	response_code
	response_phrase
	summary
```

### Releases and Updates
- 2021-04-01
	- minor fix for HTTP/ detection
- 2021-03-23
	- minor edits, added summary and nested_output/nested_json attributes
- 2021-03-13
	- first release


