1、cookie
通过在客户端记录的信息确定用户身份。
http是一种无连接协议,客户端和服务端交互仅限于请求/响应过程,结束后断开,下一次请求时,服务端会认为是一个新的客户端。
为了维护连接,让服务端知道这是前一个用户发起的请求,必须在一个地方保存客户端信息。
2、session
session,中文称为会话,通过在服务端记录的信息确定用户身份,这个 session 指的就是一个会话。
其本义是指有始有终的一些列动作、消息。
例如打电话时,从拿起电话拨号到挂断之间的一系列过程,就可以称之为一个 session。
3、好处
这样做的好处就是,用户只需要输入一次账号密码,之后再访问网页时,只需要 headers 信息利用 cookie 包含 session_id,后台就可以根据 session_id 来判断用户是否登录。
4、代码示例
import requests
url = 'https://kyfw.12306.cn/otn/leftTicket/query?leftTicketDTO.train_date=2024-10-17&leftTicketDTO.from_station=BJP&leftTicketDTO.to_station=SHH&purpose_codes=ADULT'
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/129.0.0.0 Safari/537.36',
'cookie': '_uab_collina=172880592022560712805691; JSESSIONID=2BA6A3A24B6271AA97DD6A46B8EF437E; tk=DYzBUxRQTLtyeOk98rEybDeXARpmYQ57x3M2Iw_-rQE4eafas; BIGipServerotn=2095579402.50210.0000; BIGipServerpassport=9211563452.50215.0000; guidesStatus=off; highContrastMode=defaltMode; cursorStatus=off; route=495c805987d0f5c8c84b14f60212447d; uKey=8e30273e95b5faffad65e950c957c09a8de3956d1ce2f57f8b1529c19dba9fb6; _jc_save_fromStation=%u5317%u4EAC%2CBJP; _jc_save_toStation=%u4E0A%u6D77%2CSHH; _jc_save_toDate=2024-10-13; _jc_save_wfdc_flag=dc; _jc_save_fromDate=2024-10-17'
}
session = requests.session()
res = session.get(url, headers=headers)
data = res.json()
print(data)
标签:headers,session,cookie,save,服务端,jc
From: https://www.cnblogs.com/tudigong/p/18462531