Skip to main content

Posts

Showing posts from August, 2023

Truy cập website chỉ với TCP socket - Python, Perl, Bash

Thời đại ngày nay khi mọi ngôn ngữ lập trình đều có sẵn hay dễ dàng cài thư viện HTTP client, HTTP dần trở thành "hộp đen" ít người thọc vào táy máy. Chỉ có 1 TCP socket, liệu có kết nối HTTP được không? let's do it CHÚ Ý: HTTP, không phải HTTPS HTTP/1.1 protocol Truy cập: HTTP/1.0 hay HTTP/1.1 là protocol (giao thức) dùng text, chỉ cần gửi các string đi là nhận được response. Cấu trúc 1 HTTP/1.x request: CRLF là Carriage Return and Line Feed \r\n HTTP request format Method Request-URI HTTP-Version CRLF headers CRLF message-body Chạy HTTP server có sẵn ở python3 $ python3 -m http.server Serving HTTP on 0.0.0.0 port 8000 (http://0.0.0.0:8000/) ... 127.0.0.1 - - [31/Aug/2023 19:06:49] "GET / HTTP/1.1" 200 - Gửi HTTP request bằng lệnh nc (netcat) $ nc localhost 8000 GET / HTTP/1.1 header1=value HTTP/1.0 200 OK Server: SimpleHTTP/0.6 Python/3.11.3 Date: Thu, 31 Aug 2023 12:06:49 GMT Content-type: text/html; charset=utf-8 Content-Length: 6504 ... Gửi HT...

[Go] nil không là duy nhất, cap(map) = ?

Trong Python, None là giá trị duy nhất thể hiện sự "không có gì", sự "null", thì trong Go, nil lại là nhiều thứ khác nhau. Go nil có kiểu Mỗi giá trị nil có kiểu cụ thể. package main func main() { var s []int var m map[string]int println(s == nil) println(m == nil) // println(x == y) // Compile error: ./nil.go:9:15: invalid operation: s == m (mismatched types []int and map[string]int) } s và m đều bằng nil , nhưng không bằng nhau. nil map không phải là vô dụng var m map[string]int Khi 1 map chưa được khởi tạo, nó có giá trị là nil . Map là kiểu reference , như pointer hay slices. nil map vẫn đọc giá trị bình thường (giá trị là zero value của kiểu int tức 0): var m map[string]int v := m["password"] println(m)// 0x0 println(v)// 0 nil map không thêm được giá trị. var m map[string]int m["age"] = 8 Panic với nội dung panic: assignment to entry in nil map goroutine 1 [running]: main.main() /home/hvn/me/fami...

Popular posts from this blog

Tài liệu và hướng dẫn học Python

Để tiết kiệm thời gian, tốt nhất là đi học PyMI Updated: 130617 Sau đây là các tài liệu khuyên dùng: Vì nhiều lý do, nên học python2.7 tại thời điểm hiện tại (giờ là tháng 6/2013 - muốn biết tại sao thì tự tìm hiểu) python 3.5+ (giờ là tháng 2/2017) Chuẩn bị: 1. biết bật tắt máy 2. biết cài python 3. tập gõ 10 ngón - gõ 2 ngón hay 1 ngón cũng không sao, nhưng 10 ngón là cách dễ nhất để gõ nhanh nhất. Tài liệu - Nên dùng tài liệu tại trang chủ của Python làm chính, tham khảo thêm các tài liệu khác tại http://www.familug.org/2016/12/free-ebook.html Căn bản, mới học 1.1 Python PyMI.vn https://pymi.vn/tutorial/ 1.2. Python offical tutorial kết hợp làm bài tập trên HackerRank  (đề bài bằng tiếng Anh, nhưng Google translate 1 lúc cũng ra vì có nhiều ví dụ mẫu đi kèm). Học viên của Pymi.vn có rất nhiều học viên đã tự học với Learn Python the hard way nhưng chưa thấy ai thành công cả. Hai link dưới nên đọc sau khi đã nắm được những phần cơ bản của ngôn ngữ pytho...

The PyMiers

New FAMILUG