Giao thức truyền siêu văn bản là giao thức truyền dữ liệu làm nền tảng cho World Wide Web. HTTP truyền dữ liệu giữa các máy khách HTTP [trình duyệt và ứng dụng dành cho thiết bị di động] và máy chủ. HTTP dựa trên kiến trúc client-server. HTTP hoạt động như một giao thức yêu cầu phản hồi giữa máy khách và máy chủ. Máy khách bắt đầu kết nối và gửi yêu cầu. Máy chủ nhận yêu cầu, thực hiện nó và gửi kết quả cho máy khách
Cookie là gì?
Cookie HTTP là những mẩu dữ liệu văn bản nhỏ được gửi bởi một trang web và được trình duyệt web lưu trữ trên máy tính của người dùng. Dữ liệu được lưu trữ trong cookie được tạo bởi máy chủ khi nó xử lý yêu cầu từ máy khách. Dữ liệu này được gắn thẻ với mã định danh duy nhất cho bạn và máy tính của bạn. Trình duyệt gửi cookie trở lại máy chủ với mỗi yêu cầu tiếp theo. Máy chủ đọc mã định danh từ cookie và xác định xem yêu cầu có đến từ cùng một trình duyệt hay không. Sau đó, máy chủ biết chính xác thông tin nào có thể được cung cấp cho người dùng [dựa trên quyền của người dùng]. Cookie chủ yếu được sử dụng để quản lý phiên người dùng, theo dõi người dùng, lưu trữ tùy chọn người dùng và cài đặt trang web
Cú pháp tiêu đề cookie HTTP
Sau đây là cú pháp cho tiêu đề Cookie
Cú pháp tiêu đề cookie
Cookie: [cookie-name=value]
Tại sao lại sử dụng Cookies?
Cookie chủ yếu được sử dụng cho ba mục đích
- quản lý phiên. Thông tin đăng nhập, mật khẩu hoặc bất cứ thứ gì máy chủ cần ghi nhớ
- Cá nhân hóa. Cài đặt tùy chỉnh, chủ đề và các cài đặt khác
- theo dõi. Ghi lại và phân tích hành vi người dùng
Làm cách nào để xem Cookie đã lưu trên trình duyệt?
Để xem các Cookie đã lưu trong trình duyệt của bạn
- Điều hướng đến một trang web;
- Nhấn F12 để mở công cụ dành cho nhà phát triển;
- Nhấp vào tab Ứng dụng;
- Trong cây ở phần Lưu trữ, chọn Cookies và địa chỉ trang web của bạn;
- Tại đây, bạn sẽ thấy tất cả các Cookie được lưu trữ cho trình duyệt của bạn cho trang web này
Làm cách nào để gửi Cookies?
Sau đây là một ví dụ về việc gửi tiêu đề cookie tới URL tiếng vang ReqBin
Gửi ví dụ về cookie
GET /echo HTTP/1.1
Host: reqbin.com
Cookie: name=value; name2=value2
Phản hồi về ví dụ gửi Cookies của chúng tôi
Ví dụ phản hồi cookie
HTTP/1.1 200 OK
Content-Type: text/html; charset=utf-8
Set-Cookie: .. domain=.reqbin.com;
Xem thêm
- Tiêu đề phản hồi. đặt cookie
- Ví dụ về kết nối Keep-Alive
- Làm cách nào để đăng JSON lên máy chủ?
Tạo đoạn mã để gửi cookie Ví dụ
Chuyển đổi yêu cầu Gửi cookie của bạn sang PHP, JavaScript/AJAX, Curl/Bash, Python, Java, C#/. NET bằng cách sử dụng trình tạo mã ReqBin
Gửi các ví dụ và bài viết về API liên quan đến cookie
Làm cách nào để gửi tiêu đề HTTP với yêu cầu Curl?
Tôi đang yêu cầu một điểm cuối trả về cookie trong tiêu đề, tôi sẽ sử dụng cookie đã nói sau trong yêu cầu mà tôi sẽ chuyển cookie đã nói làm tiêu đề. Vì vậy, các bước tôi cần thực hiện là
1. Gửi yêu cầu tới điểm cuối trả về cookie
2. Thực hiện một yêu cầu khác tới điểm cuối nơi tôi xác thực bằng tên người dùng và mật khẩu và dưới dạng tiêu đề, tôi gửi CSRF TOKEN thu được ở bước 1
3. Tôi thực hiện một yêu cầu khác đã được xác thực, chỉ chuyển Cookie thu được ở bước 1, điểm cuối cho biết trả về json sẽ là da mà tôi sẽ làm việc với
Điều tôi quan tâm nhất là có thể lấy cookie để chuyển nó đến điểm cuối xác thực
Tôi hiện đang thử cách sau để giải quyết vấn đề ở bước 1
let
vUrlGetCSRFTOKEN = "//my-domain.com/api/csrf-cookie",
TokenBaseUrl = Text.Combine[{Uri.Parts[vUrlGetCSRFTOKEN][Scheme],"://",Uri.Parts[vUrlGetCSRFTOKEN][Host]}],
TokenRelativePath = Uri.Parts[vUrlGetCSRFTOKEN][Path],
TokenQuery = Uri.Parts[vUrlGetCSRFTOKEN][Query],
md = Value.Metadata[Web.Contents[vUrlGetCSRFTOKEN, [
Headers=[Accept="application/json", Connection="keep-alive",
#"Accept-Encoding"="gzip, deflate"],
IsRetry=true
]
]]
in
md
Nhưng khi nhìn vào tiêu đề, tôi không thấy cookie ở đâu cả
Trước đây tôi đã sao chép tất cả chức năng này trong người đưa thư theo cách sau
pm.sendRequest[{
url: '//my-domain.com/api/csrf-cookie', //This is Step 1, GET THE COOKIES
method: 'GET',
headers:{
'Accept': 'application/json',
'Connection':'keep-alive',
'User-Agent': 'PostmanRuntime/7.29.0',
'Accept-Encoding': 'gzip, deflate, br',
},
}, function [error, response, { cookies }] {
console.log["GET COOKIE"];
console.log[response];
console.log[cookies];
if [!error] {
pm.environment.set['xsrf-cookie', cookies.get['XSRF-TOKEN']];
pm.sendRequest[{
url: '//my-domain.com/api/auth',
method: 'POST',
header:{
'X-XSRF-TOKEN': cookies.get['XSRF-TOKEN'],//STEP 2, AUTHENTICATE ME AND PASS THE COOKIE FROM STEP 1
'Accept': 'application/json',
'Connection':'keep-alive',
'User-Agent': 'PostmanRuntime/7.29.0',
'Accept-Encoding': 'gzip, deflate, br',
},
body: {
mode: 'formdata',
formdata: [{
"key": "email",
"value": "email@myemail.com",
},
{
"key": "password",
"value":"111122333"
}]
}
}, async function[err, res]{
console.log["RESULT TO LOGIN"];
console.log[res];
pm.sendRequest[{
url: '//my-domain.com/api/get_list', //GET THE DATA TO WORK
method: 'POST',
header:{
'X-XSRF-TOKEN': cookies.get['XSRF-TOKEN'],
'Accept': 'application/json',
'Connection':'keep-alive',
'User-Agent': 'PostmanRuntime/7.29.0',
'Accept-Encoding': 'gzip, deflate, br'
},
body:{
mode:'raw',
raw: JSON.stringify[
{
page: 1,
pageSize: 50,
sort: {},
type: "page"
}
]
}
}, async function[err, res]{
console.log["RESULT PBI RESPONSE"];
console.log[res];
}];
}];
}
}]
Cảm ơn bạn