Tôi đã có một sở thích mới trong việc xây dựng một máy chủ web nhỏ, hiệu quả trong C và đã gặp một số sự cố khi phân tích cú pháp phương thức POST từ Tiêu đề HTTP. Có ai có lời khuyên nào về cách xử lý lấy các cặp tên/giá trị từ dữ liệu "đã đăng" không?Phân tích cú pháp tiêu đề HTTP
POST /test HTTP/1.1
Host: test-domain.com:7017
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.1) Gecko/2008070208 Firefox/3.0.1
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
Referer: http://test-domain.com:7017/index.html
Cookie: __utma=43166241.217413299.1220726314.1221171690.1221200181.16; __utmz=43166241.1220726314.1.1.utmccn=(direct)|utmcsr=(direct)|utmcmd=(none)
Cache-Control: max-age=0
Content-Type: application/x-www-form-urlencoded
Content-Length: 25
field1=asfd&field2=a3f3f3
// ^-this
Tôi thấy không có cách nào hữu hình để truy xuất dòng dưới cùng nói chung và đảm bảo rằng nó hoạt động mọi lúc. Tôi không phải là người hâm mộ mã hóa cứng trong bất cứ thứ gì.
Ah, cảm ơn. Tôi nhận thấy có thêm một khoảng trống ngay trước chuỗi các cặp tên/giá trị, nhưng không đặt hai và hai lại với nhau. –
@rofly: không tính hai và hai, chỉ đọc tiêu chuẩn (RFC 2616). Đó là trong phần 4.1. – bortzmeyer
Chỉ cần lưu ý rằng có các khách hàng không tuân thủ sử dụng tiêu đề "thú vị" của tiêu đề, chẳng hạn như '\ n \ n' hoặc '\ n \ r \ n'. – Wade