python爬虫之:http协议扫盲

博客来源;
HTTP协议基础
****************************************************************************************************************
关键点:

1. 了解请求和相应

2. 了解响应的格式:Doc分析的基础

*****************************************************************************************************************
1. http运作方式
请求/响应范式
请求信息 :统一资源标识符、协议版本号,后边是MIME信息包括请求修饰符、客户机信息和可能的内容
响应信息 :其格式为一个状态行包括信息的协议版本号、一个成功或错误的代码,后边是MIME信息包括服务器信息、实体信息和可能的内容。

2. 请求的格式
包括:请求行、请求头、请求正文
hots/user-agent /accept/accept-Lanuage 等都为Header域
  • 如果Request-URI是absoluteURI,主机是 Request-URI的一部分。 则乎略请求中的任何Host头部域值。
  • 如果Request-URI不是absoluteURI,且请求包括 Host 头部域,则主机由 Host 头部域值决定
     请求头(Request Header)
  • Host www.baidu.com 主机域名以及端口(80缺省)
  • User-Agent 用户代理信息 用于统计用途、协议侵害跟踪和自动识别用户代理 格式 User-Agent: <product>[/<version>] 例子:  Mozilla/5.0 Firefox/3.6.12 FirePHP/0.5
  • Accept 指定响应可接受的确认媒体类型
  • Accept-Language 限制请求所选择的作为响应的自然语言集
  • Accept-Encoding 限制请求所选择的作为响应的Content-Encoding types
  • Accept-Charset 能够用来指出响应可接受的字符集
  • Keep-Alive 使客户端到服务器端的连接持续有效,当出现对服务器的后继请求时,避免了建立或者重新建立连接
  • Connection允许发送方指定希望的连接选项 close/keep-alive
  • Cookie 这个会在以后做一个详细的说明
  • Referer 是可选的 用户客户端向服务端发送上一次链接,用户根据和统计 他可以用于防止CSRF(Cross-site request forgery 跨站请求伪造)以及盗链,但也不是万能的。
3. 响应的格式
三部分构成:
  • 协议版本/响应码
  • 响应头(Response Header)
  • 响应正文
协议版本/响应码 HTTP/1.1 200 OK
响应头(Response Header) Date/server/content-Length/connection 等
响应正文 就是\r\n CRLF(回车换行) 下面的 就是html页面当然也可能是其他形式。
  • Date Fri, 10 Dec 2010 03:21:46 GMT  表示消息发生的日期和时间 以RCF 1123[8]的格式发送
  • Server 服务端服务器信息  BWS/1.0 百度自己研发的或者改进的 
  • Content-Length 指定响应正文的长度大小
  • Content-Type 指定响应正文MIME的类型以及编码 服务可以去控制 text/html text/xml  text/html;charset=gb2312
  • Cache-Contol 用于控制HTTP缓存(在HTTP/1.0中仅仅实现了Pragma: no-cache)
  • Public 指示响应可被任何缓存区缓存。Private 指示对于单个用户的整个或部分响应消息,不能被共享缓存处理。这允许服务器仅仅描述当用户的部分响应消息,此响应消息对于其他用户的请求无效。no-cache 指示请求或响应消息不能缓存(HTTP/1.0用Pragma的no-cache替换)
  • Expries 给出相应被认为过期的日期和时间
  • Content-Encoding 文档的编码方法。只有在解码之后才可以得到Content-Type头指定的内容类型。利用gzip压缩文档能够显著地减少HTML文档的下载时间
  • Connection 连接选项 close/keep-alive
4. http请求方法
HTTP1.1 总共定了8个公用方法
  • OPTIONS Fri, 10 Dec 2010 03:21:46 GMT  表示消息发生的日期和时间 以RCF 1123[8]的格式发送
  • HEAD 向服务器索要与GET请求相一致的响应,只不过响应体将不会被返回。这一方法可以在不必传输整个响应内容的情况下,就可以获取包含在响应消息头中的元信息 
  • GET 向特定的资源发出请求
  • POST 向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST请求可能会导致新的资源的建立和/或已有资源的修改。
  • PUT 向指定资源位置上传其最新内容。出于安全考虑,大多数服务器不支持此方法
  • DELETE 请求服务器删除Request-URI所标识的资源。出于安全考虑,大多数服务器不支持此方法
  • TRACE  回显服务器收到的请求,主要用于测试或诊断。出于安全考虑,大多数服务器不支持此方法
  • CONNECT 回显服务器收到的请求,主要用于测试或诊断。出于安全考虑,大多数服务器不支持此方法。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值