Làm cách nào để truy xuất cookie từ yêu cầu HTTP?

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

  1. Điều hướng đến một trang web;
  2. Nhấn F12 để mở công cụ dành cho nhà phát triển;
  3. Nhấp vào tab Ứng dụng;
  4. Trong cây ở phần Lưu trữ, chọn Cookies và địa chỉ trang web của bạn;
  5. 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

Làm cách nào để chuyển cookie trong yêu cầu HTTP?

Để gửi cookie đến máy chủ trong tiêu đề yêu cầu, bạn cần thêm dòng "Cookie. name=value" tiêu đề HTTP cho yêu cầu . Để gửi nhiều cookie trong một tiêu đề Cookie, bạn phải phân tách chúng bằng dấu chấm phẩy. Máy chủ lưu trữ cookie trong trình duyệt máy khách bằng cách trả về "Set-Cookie. name=value" tiêu đề HTTP trong phản hồi.

Cookie ở đâu trong yêu cầu HTTP?

Cookie được chuyển dưới dạng tiêu đề HTTP, cả trong yêu cầu [ máy khách -> máy chủ ] và trong phản hồi [máy chủ -> máy khách .

Cookie được gửi trở lại máy chủ web như thế nào?

Cookie được đặt bằng cách sử dụng trường tiêu đề Set-Cookie , được gửi trong phản hồi HTTP từ máy chủ web. Trường tiêu đề này hướng dẫn trình duyệt web lưu trữ cookie và gửi lại cookie trong các yêu cầu trong tương lai tới máy chủ [trình duyệt sẽ bỏ qua trường tiêu đề này nếu nó không hỗ trợ cookie hoặc đã tắt cookie].

Cookie hoạt động như thế nào với yêu cầu HTTP?

Tiêu đề Set-Cookie được máy chủ gửi để phản hồi yêu cầu HTTP, được sử dụng để tạo cookie trên hệ thống của người dùng . Tiêu đề Cookie được ứng dụng khách bao gồm với yêu cầu HTTP được gửi đến máy chủ, nếu có cookie có miền và đường dẫn phù hợp.

Chủ Đề