• http和https


    HTTP协议(HyperText Transfer Protocol,超文本传输协议):是一种发布和接收 HTML页面的方法,是规范,买卖东西一样。

    HTTPS (Hypertext Transfer Protocol over Secure Socket Layer)简单讲是http的安全版,在http下加入SSL层。

    HTTPS 的安全基础是SSL , 因此通过它传输的内容都是经过SSL 加密的, 它的主要作用可以分为两种:

    1)建立一个信息安全通道来保证数据传输的安全。

    2)确认网站的真实性, 凡是使用了HTTP 的网站, 都可以通过点击浏览器地址栏的锁头标志来

    查看网站认证之后的真实信息, 也可以通过CA 机构颁发的安全签章来查询。

    SSL(Secure Sockets Layer 安全套接层)主要用于Web的安全传输协议,在传输层对网络连接进行加密,保障在Internet上数据传输的安全。

    http的端口号为80

    https的端口号为443


    (一)http工作原理

      网络爬虫抓取过程可以理解为模拟浏览器操作的过程。浏览器的主要功能是向服务器发出请求,在浏览器窗口中展示您选择的网络资源,

    http是一套计算机通过网络进行通信的规则。

    HTTP工作过程      

    一次HTTP操作称为一个事务,其工作整个过程如下:

    1地址解析

      如用客户端浏览器请求这个页面http://localhost.com:8080/index.htm从中分解出协议名、主机名、端口、对象路径等部分,

    对于我们的这个地址,解析得到的结果如下:
        协议名:http
        主机名:localhost.com
        端口:8080
        对象路径:/index.htm

    在这一步,需要域名系统DNS解析域名localhost.com,得主机的IP地址。

    2、封装HTTP请求数据包

      把以上部分结合本机自己的信息,封装成一个HTTP请求数据包

    3封装成TCP包,建立TCP连接(TCP的三次握手)

    TCP握手协议 

      第一次握手:建立连接时,客户端发送syn(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认;
    SYN:同步序列编号(Synchronize Sequence Numbers)
        第二次握手:服务器收到syn,必须确认客户的SYNack=j+1,同时自己也发送一个SYN包(syn=k,

    SYN+ACK,此时服务器进入SYN_RECV状态;
        第三次握手:客户端收到服务器的SYNACK,向服务器发送确认包ACK(ack=k+1),此包发送完毕,

    客户端和服务器进入ESTABLISHED状态,完成三次握手。完成三次握手,客户端与服务器开始传送数据

    4客户机发送请求命令

      建立连接后,客户机发送一个请求给服务器,请求方式的格式为:统一资源标识符(URIUniform Resource Identifier)、

    协议版本号,后边是MIME信息包括请求修饰符、客户机信息和可能的内容。

    5服务器响应

    服务器接到请求后,给予相应的响应信息,其格式为一个状态行,包括信息的协议版本号、一个成功或错误的代码,

    后边是MIME信息包括服务器信息、实体信息和可能的内容。

    实体消息是服务器向浏览器发送头信息后,它会发送一个空白行来表示头信息的发送到此结束,接着,

    它就以Content-Type应答头信息所描述的格式发送用户所请求的实际数据

    6服务器关闭TCP连接

    一般情况下,一旦Web服务器向浏览器发送了请求数据,它就要关闭TCP连接,然后如果浏览器或者服务器在其头信息加入了

    Connection:keep-aliveTCP连接在发送后将仍然保持打开状态,于是,浏览器可以继续通过相同的连接发送请求。

    保持连接节省了为每个请求建立新连接所需的时间,还节约了网络带宽。

    (二)https的请求与响应

    http通信由两部分组成:客户端请求消息  服务器响应消息

    (三)浏览器http请求

    1) 当用户在浏览器的地址栏中输入一个URL并按回车键之后,浏览器会向http服务器发送http请求。http请求主要分为“Get”“Post”两种方法。

    2) 当我们在浏览器输入URL http://www.baidu.com 的时候,浏览器发送一个Request请求去获取 http://www.baidu.com html文件,

    服务器把Response文件对象发送回给浏览器。

    3) 浏览器分析Response中的 HTML,发现其中引用了很多其他文件,比如Images文件,CSS文件,JS文件。

    浏览器会自动再次发送Request去获取图片,CSS文件,或者JS文件。

    4)当所有的文件都下载成功后,网页会根据HTML语法结构,完整的显示出来了。

    URL(Uniform / Universal Resource Locator的缩写):统一资源定位符,是用于完整地描 Internet上网页和其他资源的地址的一种标识方法。

    基本格式:scheme://host[:port#]/path/…/[?query-string][#anchor]

    • scheme:协议(例如:httphttpftp)
    • host:服务器的IP地址或者域名
    • port:服务器的端口(如果是走协议默认端口,缺省端口80)
    • path:访问资源的路径
      • query-string:参数,发送给http服务器的数据
      • anchor:锚(跳转到网页的指定锚点位置)

    例如:

    (四)客户端http请求

    URL只是标识资源的位置,而http是用来提交和获取资源。客户端发送一个http请求到服务器的请求消息,

    包括以下格式:请求行、请求头部、空行、请求数据四个部分组成,下图给出了请求报文的一般格式。

    (五)请求方法

    GET http://www.baidu.com/ http/1.1

    根据http标准,http请求可以使用多种请求方法。

    http 0.9只有基本的文本 GET 功能。

    http 1.0完善的请求/响应模型,并将协议补充完整,定义了三种请求方法: GETPOST HEAD方法。

    http 1.1 1.0 基础上进行更新,新增了五种请求方法:OPTIONSPUTDELETETRACE CONNECT 方法。

    http 2.0(未普及)请求/响应首部的定义基本没有改变,只是所有首部键必须全部小写,而且请求行要独立为 :method:scheme:host:path这些键值对。

  • 相关阅读:
    VS2015, .NET 4.6, C# 6.0, F# 4.0等重量级产品正式上线
    Visual Studio 2015正式发布
    持续集成并不能消除 Bug,而是让它们非常容易发现和改正(转)
    如何用Excel直接查询Oracle中的数据(转)
    HTTP必知必会(转)
    二叉树的友好实现(转)
    TortoiseGit push失败原因小结(转)
    Android
    对JAVA Bean使用PropertyDescriptor反射调用JAVA方法
    关于MSHTML
  • 原文地址:https://www.cnblogs.com/talosant/p/11575110.html
Copyright © 2020-2023  润新知