zoukankan      html  css  js  c++  java
  • python 爬虫001-http请求过程

     HTTP 请求流程

    一次完整的HTTP请求过程从TCP三次握手建立连接成功后开始,客户端按照指定的格式开始向服务端发送HTTP请求,服务端接收请求后,解析HTTP请求,处理完业务逻辑,最后返回一个HTTP的响应给客户端,HTTP的响应内容同样有标准的格式。无论是什么客户端或者是什么服务端,大家只要按照HTTP的协议标准来实现的话,那么它一定是通用的。

    HTTP请求格式

    HTTP请求格式主要有四部分组成,分别是:请求行、请求头、空行、消息体,每部分内容占一行

    <request-line>
    <general-headers>
    <request-headers>
    <entity-headers>
    <empty-line>
    [<message-body>]
    

    request-format

    请求行:请求行是请求消息的第一行,由三部分组成:分别是请求方法(GET/POST/DELETE/PUT/HEAD)、请求资源的URI路径、HTTP的版本号

    GET /index.html HTTP/1.1
    

    请求头:请求头中的信息有和缓存相关的头(Cache-Control,If-Modified-Since)、客户端身份信息(User-Agent)等等。例如:

    Cache-Control:max-age=0
    Cookie:gsScrollPos=; _ga=GA1.2.329038035.1465891024; _gat=1
    If-Modified-Since:Sun, 01 May 2016 11:19:03 GMT
    User-Agent:Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.84 Safari/537.36
    

    消息体:请求体是客户端发给服务端的请求数据,这部分数据并不是每个请求必须的。

    HTTP响应格式

    服务器接收处理完请求后返回一个HTTP相应消息给客户端。HTTP响应消息的格式包括:状态行、响应头、空行、消息体。每部分内容占一行。

    <status-line>
    <general-headers>
    <response-headers>
    <entity-headers>
    <empty-line>
    [<message-body>]
    

    response-format

    状态行:状态行位于相应消息的第一行,有HTTP协议版本号,状态码和状态说明三部分构成。如:

    HTTP/1.1 200 OK
    

    响应头:响应头是服务器传递给客户端用于说明服务器的一些信息,以及将来继续访问该资源时的策略。

    Connection:keep-alive
    Content-Encoding:gzip
    Content-Type:text/html; charset=utf-8
    Date:Fri, 24 Jun 2016 06:23:31 GMT
    Server:nginx/1.9.12
    Transfer-Encoding:chunked
    

    响应体:响应体是服务端返回给客户端的HTML文本内容,或者其他格式的数据,比如:视频流、图片或者音频数据。


    ***微信扫一扫,关注“python测试开发圈”,了解更多测试教程!***
  • 相关阅读:
    Leetcode 16.25 LRU缓存 哈希表与双向链表的组合
    Leetcode437 路径总和 III 双递归与前缀和
    leetcode 0404 二叉树检查平衡性 DFS
    Leetcode 1219 黄金矿工 暴力回溯
    Leetcode1218 最长定差子序列 哈希表优化DP
    Leetcode 91 解码方法
    Leetcode 129 求根到叶子节点数字之和 DFS优化
    Leetcode 125 验证回文串 双指针
    Docker安装Mysql记录
    vmware虚拟机---Liunx配置静态IP
  • 原文地址:https://www.cnblogs.com/guanfuchang/p/6775413.html
Copyright © 2011-2022 走看看