美文网首页
HTTP 、 HTTPS协议

HTTP 、 HTTPS协议

作者: zy小太阳 | 来源:发表于2018-12-18 19:05 被阅读0次

    OSI七层协议:

    (应用相关)

    • 应用层:为用户的应用提供网络服务的(http,HTTPS,ftp...)

    • 表示层:负责端到端的数据信息可以被另一个主机所理解和识别,并按照一定的格式将信息传递到会话层

    • 会话层:管理主机之间的会话进程,负责建立、管理和终止会话进程

    • 传输层:进行数据传输(TCP UDP)

                        UDP          和         TCP对比:
      传输方式:        面向链接                  非面向链接
      传输的数据:      传输的是数据流             传输的是数据包(可能会丢包)
      传输的效率:        慢                         快
      传输的稳定性:       高                         低
      

    (硬件)

    • 网络层:路由器...
    • 数据链路层:网桥 交换机
    • 物理层:网线 网卡 集线器 中继器

    应用层协议

    • HTTP协议(HyperText Transfer Protocol)超文本传输协议,端口号80

    • HTTPS协议(Hypertext Transfer Protocol over Secure Socket Layer)HTTP的安全版,端口号443,

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

    • HTTPS的安全基础是SSL,因此通过它可以传输的内容都是经过SSL加密的,主要作用是:
      建立一个安全有效的信息传送通道,保证数据传送的安全性
      确定网站的真实性和有效性

    注意:HTTPS比HTTP更安全,但是性能更低

    • HTTP工作原理

      网络爬虫抓取过程可以理解为模拟浏览器操作的过程。
      浏览器的主要功能是向服务器发出请求,在浏览器窗口中展示您选择的网络资源,HTTP是一套计算
      机通过网络进行通信的规则。 HTTP的请求与响应
      

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

    浏览器发送HTTP请求的过程:

    当用户 在浏览器的地址栏中输入一个URL并按回车键之后(会先经过DNS服务将域名解析为ip),浏览器会向HTTP服务器发送HTTP请求。HTTP请求主要分为“Get”和“Post”两种方法。
    当我们在浏览器输入URL http://www.baidu.com 的时候,浏览器发送一个Request请求去获取 http://www.baidu.com 的html文件,服务器把Response文件对象发送回给浏览器。
    浏览器分析Response中的 HTML,发现其中引用了很多其他文件,比如Images文件,CSS文件,JS文件。 浏览器会自动再次发送Request去获取图片,CSS文件,或者JS文件。
    当所有的文件都下载成功后,网页会根据HTML语法结构,完整的显示出来了。
    

    url的组成

    URI(Uniform Resource Identifier):统一资源标识符
    URL(Uniform / Universal Resource Locator的缩写):统一资源定位符,是用于完整地描述Internet上网页和其他资源的地址的一种标识方法。
    URN(Universal Resource Name):统一资源名称,只命名资源而不指定如何定位资源
    

    基本格式:
    scheme://host[:port#]/path/…/[?query-string][#anchor]
    scheme:协议(例如:http, https, ftp)
    host:服务器的IP地址或者域名
    port#:服务器的端口(如果是走协议默认端口,缺省端口80)
    path:访问资源的路径
    query-string:参数,发送给http服务器的数据
    anchor:锚(跳转到网页的指定锚点位置)
    eg:
    https://www.baidu.com/s?wd=崔永元真面饭馆
    https://book.qidian.com/info/1004608738#Catalog

    请求方法

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

    HTTP 0.9:只有基本的文本 GET 功能。
    HTTP 1.0:完善的请求/响应模型,并将协议补充完整,定义了三种请求方法:
    GET, POST 和 HEAD方法。
    HTTP 1.1:在 1.0 基础上进行更新,新增了五种请求方法:OPTIONS, PUT, DELETE,
    TRACE 和 CONNECT 方法。
    HTTP 2.0(未普及):请求/响应首部的定义基本没有改变,只是所有首部键必须
    全部小写,而且请求行要独立为 :method、:scheme、:host、:path这些键值对。

    HTTP请求主要分为Get和Post两种方法

    GET是从服务器上获取数据,POST是向服务器传送数据
    GET请求参数显示,都显示在浏览器网址上,HTTP服务器根据该请求所包含URL中的参数来产生响应内容,即“Get”请求的参数是URL的一部分。 例如: http://www.baidu.com/s?wd=Chinese
    POST请求参数在请求体当中,消息长度没有限制而且以隐式的方式进行发送,通常用来向HTTP服务器提交量比较大的数据(比如请求中包含许多参数或者文件上传操作等),请求的参数包含在“Content-Type”消息头里,指明该消息体的媒体类型和编码.
    注意:避免使用Get方式提交表单,因为有可能会导致安全问题。 比如说在登陆表单中用Get方式,用户输入的用户名和密码将在地址栏中暴露无遗。

    常用的请求报头(Request Headers)

    1. User-Agent (浏览器名称)
      User-Agent:是客户浏览器的名称,以后会详细讲。
    2. Cookie (Cookie)
      Cookie:浏览器用这个属性向服务器发送Cookie。
      Cookie是在浏览器中寄存的小型数据体,它可以记载和服务器相关的用户信息,也以用来实现会话功能。
    3. Referer (页面跳转处)
      Referer:表明产生请求的网页来自于哪个URL,用户是从该 Referer页面访问到当前请求的页面。
      这个属性可以用来跟踪Web请求来自哪个页面, 是从什么网站来的等。
    发起请求:
    会携带请求头:
    ‘User-Agent’:模拟浏览器进行请求
    ‘Cookie’:存储在浏览器里面的,使用cookie表明用户的身份
    ‘Refere’:说明当前的请求是从哪个页面发起的
    

    常见状态码:

    100~199:表示服务器成功接收部分请求,要求客户端继续提交其余请求才能完成整个处理过程。
    2xx:表示服务器成功接收请求并已完成整个处理过程。
    200(OK 请求成功)。
    3xx:为完成请求,客户需进一步细化请求。例如:请求的资源已经移动一个新地址、 常用
    301: 永久重定向
    302: 临时重定向(所请求的页面已经临时转移至新的url)
    4xx:客户端的请求有错误.
    400:错误请求,服务器无法解析请求
    401:未授权,没有进行身份验证
    403:服务器拒绝访问
    404:服务器无法找到被请求的网页
    405:请求方式不被允许
    408:请求超时
    5xx:服务器端出现错误
    500:服务器内部错误
    501:服务器不具备完成请求的功能
    503:服务器不可用

    相关文章

      网友评论

          本文标题:HTTP 、 HTTPS协议

          本文链接:https://www.haomeiwen.com/subject/kkflkqtx.html