编程悬崖,回头是岸 ——Python:模拟登陆与HTTP协议(1)

最近快船可谓风生水起,现在是14胜3负排西部第二,西决地板的魔咒有望破解。东部毫无疑问是骑士的了,就看西部的马刺勇士快船谁能笑到最后了

好了,回归正题,说下http协议

协议是什么呢,我觉得最直接最简单的理解就是:约定与规则,双方按照约定好的规则来做,不按约定来做的的不管,按错误的规则来做的不管。

那http又是啥呢,最简单粗暴的方法:百度!
以下摘自百度百科:

超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。所有的WWW文件都必须遵守这个标准。设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法。1960年美国人Ted Nelson构思了一种通过计算机处理文本信息的方法,并称之为超文本(hypertext),这成为了HTTP超文本传输协议标准架构的发展根基。Ted Nelson组织协调万维网协会(World Wide Web Consortium)和互联网工程工作小组(Internet Engineering Task Force )共同合作研究,最终发布了一系列的RFC,其中著名的RFC 2616定义了HTTP 1.1。

以上可以了解到两个信息
1、接收和发布html页面的标准
2、版本是1.1

那么http具体格式是怎样的呢?抓个包来看看

看2个重点:
1、get请求
2、200ok

那么get请求做了啥:

包括3个方面:请求行、请求头、请求体

请求行:GET / HTTP/1.1
GET:请求方式(还有head、put、delete、post等)
HTTP/1.1:http协议版本

请求头:里面明确了你请求的前提,比如要keep-alive保持连接,比如要压缩gzip等

Accept:用于指定客户端接受哪些类型的信息
Accept:image/gif,接受GIF图象格式的资源
Accept:text/html,接受html文本。

Referer: 告诉服务器我是从哪个页面链接过来的,服务器基此可以获得一些信息用于处理,例如外链

Accept-Language: 指定一种自然语言

User-Agent: 允许客户端将它的操作系统、浏览器和其它属性告诉服务器

Accept-Encoding: 用于指定可接受的内容编码

Host: 用于指定被请求资源的Internet主机和端口号

Connection: 当主机和服务器通信时对于长链接如何进行处理

……省略

请求体:就是请求头下面隔一行的内容

有请求就肯定有回应,回应一样也是由3部分组成:响应状态、响应头、响应体

响应状态:200OK就是状态,200代表正常与成功,就是刚才的请求服务器已经接受
状态码有很多,归纳为5类
100-199 用于指定客户端应相应的某些动作。
200-299 用于表示请求成功。
300-399 用于已经移动的文件并且常被包含在定位头信息中指定新的地址信息。
400-499 用于指出客户端的错误。
500-599 用于支持服务器错误。
例如平常见的最多的就是404NOTFOUND,就是请求了不存在的地址

响应头:
Content-Type:表示后面的文档属于什么MIME类型
(百度百科:MIME(Multipurpose Internet Mail Extensions)多用途互联网邮件扩展类型。是设定某种扩展名的文件用一种应用程序来打开的方式类型,当该扩展名文件被访问的时候,浏览器会自动使用指定应用程序来打开。多用于指定一些客户端自定义的文件名,以及一些媒体文件打开方式。)

Content-Length:用于指明正文的长度,仅正文,以字节方式存储的十进制数字来表示,也就是一个数字字符占一个字节,用其对应的ASCII码存储传输

Access-Control-Allow-Origin:表示允许任何域名跨域访问
,服务端需指定一个域名

Access-Control-Allow-Credentials:跨域请求凭证,为true则携带cookie作为凭证

Date:日期

鉴于刚才家里小猫咪在我床上撒了尿还歪头卖萌,铲屎君只能洗被子去了,下回继续

Python:模拟登陆与HTTP协议(1)相关推荐

  1. python模拟登陆 验证码el_python 模拟登陆github的示例

    # -*- coding: utf-8 -*- # @Author: CriseLYJ # @Date: 2020-08-14 12:13:11 import re import requests c ...

  2. python模拟登陆163邮箱并获取通讯录

    From: http://hi.baidu.com/fc_lamp/blog/item/2466d1096fcc532de8248839.html python模拟登陆163邮箱并获取通讯录 #-*- ...

  3. 潜心专研Python模拟登陆专题,实现网易云音乐自动签到!这项目居然只值三百?

    前言: 时隔三周没有和大家见过面了,最近在研究python模拟登陆专题,话不多说,让我们愉快地开始实现模拟登陆实现网易云自动签到 开发工具 **Python****版本:**3.6.4 相关模块: D ...

  4. python模拟登陆 验证码el_python 模拟登陆163邮箱

    import time from selenium import webdriver from selenium.webdriver.common.by import By from selenium ...

  5. Python模拟登陆大连交通大学教务在线

    Python模拟登陆大连交通大学教务在线,使用wxPython做的界面,urllib2发送数据,可以实现登陆后获取首页登陆数据的功能,目前只做登陆,其他的暂时没做 Python2.7代码 # -*- ...

  6. 使用Python模拟登陆12306并全自动下单

    最近一段时间一直在研究用Python模拟登陆12306网站并自动刷票下单,经过一段时间的摸索,终于完成了代码,实现了12306刷票的功能.话不多说,先给大伙儿看看成果.我录制了一段时间,展示了自动刷票 ...

  7. python模拟登录qq账号密码_最新的Python模拟登陆QQ脚本,一键批量登录,强行过验证!...

    Python模拟QQ批量登陆脚本,以下代码附带解释以便于理解思路. Python代码: #coding=utf-8 import os import time import win32gui impo ...

  8. python github登陆_用Python模拟登陆GitHub并获取信息

    最近在研究如何对搜狗搜索公众号文章进行爬取,由于需要用到Cookies,所以这回先了解下Cookies的相关知识. 搜狗的反爬有点厉害,即使我用了高匿代理,它还是会提醒我IP访问过于频繁,然后跳转验证 ...

  9. python模拟登陆

    简单使用python(python3.7)模拟登陆github # !/usr/bin/env python # -*-coding:utf-8-*- """ @Auth ...

最新文章

  1. TCP/IP基础概念及通信过程举例
  2. 用惯C#再用C++的一些麻烦事
  3. 使用cqengine进行集合检索
  4. Java集合框架之 Java HashMap 源码解析
  5. travis-ci中的checkpatch工具使用
  6. duilib入门简明教程 -- VS环境配置(2) (转)
  7. 华硕xhci灰色_xHCI模式作怪无法使用USB设备?解决办法这里有!
  8. ubuntu18安装python3.6.8_ubuntu 18.04 + Python 3.6.8 更换软件安装源
  9. WEB平台架构之:LAMP(Linux+Apache+MySQL+PHP)
  10. [Matlab] PDETool 的 Set Formula 的元素排列顺序会影响 Boundary 的判定
  11. 下一代的搜索引擎是什么样子?神经网络真的能「死记硬背」吗?
  12. 怎么用wps做区域分布图_《wps频数分布表怎么做》 在EXCEL中如何做频率分布图
  13. 贝叶斯分析思路 通俗讲法
  14. 谷歌浏览器误删怎么办
  15. 有哪些写项目策划书注意事项
  16. 华三路由器ER3260 ipsec配置
  17. 《跃迁:成为高手的技术》读后感
  18. mac仿win快捷键方案
  19. 定积分的基本性质1 线性性质
  20. 风口下的远程办公:钉钉微信死磕,百度趁势入场

热门文章

  1. 儿童护眼灯哪个品牌比较好?2022年国家认可护眼灯品牌
  2. Fundebug录屏插件更新至0.6.0
  3. Java Web开发——自动刷新展示验证码图片
  4. spring7大事务传播行为
  5. 寄存器、RAM、ROM、Flash
  6. h5页面打开word文档ios_H5页面生成word文件及发送邮件
  7. 新概念第一册 Lesson 01 Excuse me!
  8. L2Dwidget 二次元前端插件
  9. 共享的打印机不能打印,提示打印后台程序服务器没有运行
  10. 【年报】:2019,你给我了什么;2020,我要做点什么