์์ฃผ ๊ธด ๋คํธ์ํฌ ๋ก๊ทธ ์ด์ง๋ง ๊ฐ๋จํ ๊ตฌ์กฐ๋ฅผ ์ดํด๋ณด๋, ์๋์ ๊ฐ์๋ค.
params์ ์ ๋ณด๋ค์ด ๋ค๋ฅธ ๊ฒฝ์ฐ๊ฐ ๊ฝค ์์๋ค.
๊ทธ๋์ ํด๋น ๊ฐ์ ๋ด๋ถ์ ์ ๊ทผ ์์๋ "try~ except~" ๋ฌธ์ ์ฌ์ฉํ์ฌ์ ์์ธ์ฒ๋ฆฌ๋ฅผ ํด์ฃผ์๋ค.
{
"constants" : {},
"events": {[
{
"params": {}
"phase":
"source": {
"id":
"start_time":
"type":
},
"time":
"type":
} , {} ,{} ,{} ,{}
]},
"polledData":{}
์ฒซ๋ฒ์งธ "constants"
: "constants" Key๊ฐ์ Value๊ฐ์ ์๋ ์ฌ์ง ๊ฐ์ ํค๊ฐ์ผ๋ก ๋ถ๋ฅ๋์ด ์์๊ณ ,
value๊ฐ์ธ int ๋ก ์๋์ ๊ธฐ๋ก ๋๋ ๋ถ๋ถ์ ๋ณผ ์ ์๋ค. ์ํ๋ ๊ฐ์ ๋ํด์๋ง ํ์ธ์ ํด๋์๋ค.
์ธ์ ๋ ์ง ์๋์์ ๋ชจ๋ฅด๋ ์ซ์ ์ฝ๋๊ฐ ์์ผ๋ฉด VSCode ์์๋ (โ + G) ๋ก ํด๋น ์ซ์ ์ฝ๋๋ฅผ ๊ฒ์ํด์ ๋ฌด์์ ๋ปํ๋์ง ์ฐพ์๋ณด๋ฉด ์์ํด์ง๋ค.
๋๋ฒ์งธ "events"
: events๋ผ๋ ํค ์์๋ ์๋์ ๊ฐ์ด ๋ค์ด๊ฐ์๊ณ ,
params ํ๊ทธ๊ฐ ์์ ์๋ ๊ฒฝ์ฐ ๋ ์๋ค. ๋ํ params์์ ๊ฐ๋ค์ด ๋ค๋ฅธ ๊ฒฝ์ฐ๋ ์๋ค. (์๋์ ์ฝ๋ ์ฒจ๋ถ)
์ด ๋ถ๋ถ์ ์ํ๋ ์ ๋ณด๊ฐ ๋ชจ๋ ์๋ค.
์ธ๋ฒ์งธ "polledData"
: ๋ผ๋ ํค ์์๋ ์๋์ ๊ฐ์ด ๋ค์ด๊ฐ์๋ค.
๋ด๊ฐ ์๊ฐํ๊ณ ์๋ ์๋น์ค์์ ์ฐ๋ฆฌ๋ ์ํ๋ ํธ์คํธ ๊ฐ์ ์ ๋ ฅ ๋ฐ๋๋ค. ( ์: "dojii.shop" )
json ํ์ผ์ ๋ณด๋ ํด๋น ํธ์คํธ ์ฃผ์ ๊ฐ๋ง๋ค source_id ๋ก ๊ตฌ๋ถ๋์ด์ "events" ๋ถ๋ถ์์ ๋ณผ ์ ์๋ค.
HTTP2_SESSION_SEND_HEADERS ์ ๋ํ ์ ๋ณด์ ์๊ฐ์ ์ฐพ์์ผ ํ๋ค.
"HTTP2_SESSION_SEND_HEADERS": 188,
๊ทธ๋ฆฌ๊ณ , HTTP2_SESSION_RECV_DATA --> fin = true ์ ๋ํ ์ ๋ณด์ ์๊ฐ์ ์ฐพ์์ผ ํ๋ค.
"HTTP2_SESSION_RECV_DATA": 205,
๊ฐ์ host ๋ค์์ผ ์์, source์์ id๊ฐ 323457๋ก ๊ฐ๋ค.
๐ค ๊ฒฐ๋ก ์ ์ผ๋ก ์ด๋ป๊ฒ ์๊ณ ๋ฆฌ์ฆ์ ์ง์ผ ํ ๊น?
1. ์ฌ์ฉ์์๊ฒ ํธ์คํธ ๋ช (dojii.shop)์ ์ ๋ ฅ ๋ฐ๋๋ค.
2. json ์์ ๋ชจ๋ ์ด๋ฒคํธ ์์๋ฅผ ์ดํด ๋ณด๋๋ฐ, ํธ์คํธ๋ช ์ด ๋์ค๋ฉด ํด๋น source์ id ๊ฐ์ ์ ์ฅํด ๋๋ค.
3. ์ ์ฅํ ์ดํ ๋ถํฐ๋ source id๊ฐ 323457 ์ธ ๊ฒ๋ง ๋ณผ ์ ์๋๋ก ํ๋ค.
4. ๊ทธ ์ดํ ์๋ source id ๊ฐ 323457 ์ธ๋ฐ, params ์ fin ์ด true ์ธ ๊ฒ์ ํ์ธํ๋ค.
5. start_time ๊ณผ "time" ์ ๋ํ ๊ฐ๋ ์ด ์๋ค. ์ด ์ฐจ๊ฐ st ๊ฐ์ด๋ฏ๋ก ํด๋น ๋๊ฐ์ง ๊ฐ์ ์ฐจ๋ฅผ ๊ฐฑ์ ํ๋ค.
6. ๊ฐ์ฅ ์์ค์ ๋์จ 6๋ฒ๊ฐ์ด ๊ฐ์ฅ ๋ง์ง๋ง ์์์ ๋ํด ๋ฐ์ ๊ฐ์ด๋ฏ๋ก ๋๋ ๋๊น์ง ๊ฐฑ์ ํ๋ค.
7. (์์ ๊ฐ์ ๊ฒฝ์ฐ) first_sent ๋ 542113910 , last_sent๋ 542113918 ์ผ๋ก ์ฐจ๊ฐ์ 8์ด๋ค.
8. DB ๋ด์ 3๊ฐ์ง ์ ๋ณด๋ฅผ ๋ชจ๋ ๋ด๋๋ค.
9. ๊ทธ๋ํ์ ๊ฐ์ผ๋ก๋ 8 ๊ฐ์ ๋ด๋๋ค.
๐ฉ๐ป๐ป ์ง ์๊ณ ๋ฆฌ์ฆ
: ์ฅ๊ณ ์ ์ฐ๊ฒฐํด์ค์ผ ํ๋ ๋ถ๋ถ์ ๋นผ๊ณ , ๋์๋ฐฉ์๋ง ๊ตฌํํ ๋ถ๋ถ์ด๋ค. (์์ 2๋ฒ~ 7๋ฒ)
# polledData ์ ์๋ SpdySessionInfo ์์ ํด๋น source_id ๊ฐ์ ๊ฐ์ ธ์จ๋ค.
import json
user_input_host = "dojii.shop" # ์ฅ๊ณ ๊ฐ์์ ๊ฐ์ ธ์์ผํจ
user_host_id = 0 # temp ๊ฐ
result_send = 0
result_recv = 0
result_diff = 0
'''ํ์ผ์์ ํด๋น url ์ ๋ํ '''
with open('/Users/dojiyeong/Desktop/capstone/http2/http_2.0_imgS_1.json','r') as f:
json_data = json.load(f)
# ์ํ๋ ํธ์คํธ์ ๋ํด์ source_id ๊ตฌํ๊ธฐ
for data in json_data['polledData']['spdySessionInfo']:
if(user_input_host in data['host_port_pair']):
user_host_id = data['source_id']
# print(data['source_id'])
# 205 == HTTP2_SESSION_RECV_DATA, 188 == HTTP2_SESSION_SEND_HEADERS
for data in json_data['events']:
try:
temp_param = data['params']
temp_source = data['source']
temp_type = data['type']
temp_time = data['time']
if(temp_source['id'] == user_host_id):
if(temp_type == 205):
if (temp_param['fin'] == True):
start = int(temp_source['start_time'])
last = int(temp_time)
diff = last - start
result_send = start
result_recv = last
result_diff = diff
except:
pass
print("first_send : "+ str(result_send))
print("last recv : " + str(result_recv))
print("result time : " + str(result_diff))
'HTTP 1.1 VS HTTP2.0 > Capstone design' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
h1 ํ์ผ send-recv ์ฑ๋ฅ, ์๊ณ ๋ฆฌ์ฆ ์์ฑํ๊ธฐ (0) | 2021.07.19 |
---|---|
[Django] FileNotFoundError ํด๊ฒฐ๋ฒ! #๐ (0) | 2021.06.17 |
[#5 Http1.1 vs Http2.0] ๋ฌธ์ ํด๊ฒฐ / ํ์ผ ์ฌ์ด์ฆ ๋ณ ์ธก์ / ์คํ ์์ค ์กฐ์ฌ (0) | 2021.05.24 |
cat 10 / (0) | 2021.05.06 |
[#4 Http1.1 vs Http2.0] Chrome-net-export ๋ก Img 10, 50, 100/Img S,M,L ์ ๋๋ก ์ฑ๋ฅํ๊ฐ (0) | 2021.05.03 |
๋๊ธ