Http协议基础

Http协议

HTTP(超文本传输协议)是客户端与网站服务器通信的的一种交互形式,用于传输“含有指向其他资源链接”文本内容,理解HTTP协议对爬虫至关重要。

1.Http的请求构成

  • 请求行

包含方法(GET/POST/PUT/DELETE等)、URL(请求的资源路径)和协议版本(HTTP/1.1或HTTP/2)

GET https://www.baidu.com/ HTTP/1.1
  • 请求头

包含客户端信息,如User-Agent(身份标识), Referer(用来表示当前请求是从哪个页面跳转过来的), Host(客户端请求的服务器的域名)等

User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36
Referer: https://cn.bing.com/
Host: www.baidu.com

其他相关请求头可参考下面这篇文章请求头详解

  • 请求体

主要用于POST请求,请求时发送的数据,表单数据、JSON、XML等

请求方式: get与post请求

- GET提交的数据会放在URL之后,以?分割URL和传输数据,参数之间以&相连,如EditBook?name=test1&id=123456. 
- POST方法是把提交的数据放在HTTP包的请求体中.
- GET提交的数据大小有限制(因为浏览器对URL的长度有限制),而POST方法提交的数据没有大小限制,且携带的请求数据不可以明文方式连接在url中。

2.Http的响应构成

  • 状态行

包含协议版本、状态码和状态描述

HTTP/1.1 200 OK

2xx (成功):200 OK (最常见)。
3xx (重定向–即跳转访问到另一个页面):301 (永久), 302 (临时), 304 (未修改)。
4xx (客户端错误):400 (请求错误), 403 (禁止访问), 404 (未找到)。
5xx (服务器错误):500 (内部错误), 502 (网关错误)。

  • 响应头

存储的是该响应的一些主要说明,如Set-Cookie(设置cookie)、Content-Type(内容类型)、Location(重定向地址)

Set-Cookie: 
Location:
Content-Length: 
  • 响应体

发送给客户端的指定数据,HTML、JSON、图片等实际内容

3.爬虫的Http实践

  • 设置请求头
import requests

headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36',
    'Accept': 'text/html,application/xhtml+xml',
    'Accept-Language': 'en-US,en;q=0.9',
    'Referer': 'https://www.example.com/',
    'Cookie': 'sessionid=abc123; csrftoken=xyz456'
}

response = requests.get('https://www.example.com', headers=headers)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值