一.HTTP协议

  1.官方概念:

    HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议。(虽然童鞋们将这条概念都看烂了,但是也没办法,毕竟这就是HTTP的权威官方的概念解释,要想彻底理解,请客观目移下侧......)

  2.白话概念:

    HTTP协议就是服务器(Server)和客户端(Client)之间进行数据交互(相互传输数据)的一种形式。我们可以将Server和Client进行拟人化,那么该协议就是Server和Client这两兄弟间指定的一种交互沟通方式。大家都看过智取威虎山中杨子荣和土匪们之间说的黑话吧:

      - 土匪:蘑菇,你哪路?什么价?(什么人?到哪里去?)

      - 杨子荣:哈!想啥来啥,想吃奶来了妈妈,想娘家的人,孩子他舅舅来了。(找同行)

      - 杨子荣:拜见三爷!

      - 土匪:天王盖地虎!(你好大的胆!敢来气你的祖宗?)

      - 杨子荣:宝塔镇河妖!(要是那样,叫我从山上摔死,掉河里淹死。)
      - 土匪:野鸡闷头钻,哪能上天王山!(你不是正牌的。)
      - 杨子荣:地上有的是米,喂呀,有根底!(老子是正牌的,老牌的。)
      - 土匪:拜见过阿妈啦?(你从小拜谁为师?)
      - 杨子荣:他房上没瓦,非否非,否非否!(不到正堂不能说。)
      - 土匪:嘛哈嘛哈?(以前独干吗?)
      - 杨子荣:正晌午说话,谁还没有家?(许大马棒山上。)
      - 土匪:好叭哒!(内行,是把老手)
      - 杨子荣:天下大耷拉!(不吹牛,闯过大队头。)
      - 座山雕:脸红什么?
      - 杨子荣:精神焕发!
      - 座山雕:怎么又黄了?
      - 杨子荣:防冷,涂的蜡!
      - 座山雕:晒哒晒哒。(谁指点你来的?)
      - 杨子荣:一座玲珑塔,面向青寨背靠沙!(是个道人。)

    是不是看到这里,有得童鞋终于知道了传说中的‘天王盖地虎’是真正含义了吧。此黑话其实就是杨子荣和土匪之间进行交互沟通的方式(协议)。

  3.HTTP工作原理:

    HTTP协议工作于客户端-服务端架构为上。浏览器作为HTTP客户端通过URL向HTTP服务端即WEB服务器发送所有请求。Web服务器根据接收到的请求后,向客户端发送响应信息。

                    

  4.HTTP四点注意事项:

    - HTTP允许传输任意类型的数据对象。正在传输的类型由Content-Type加以标记。

    - HTTP是无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。

    - HTTP是媒体独立的:这意味着,只要客户端和服务器知道如何处理的数据内容,任何类型的数据都可以通过HTTP发送。客户端以及服务器指定使用适合的MIME-type内容类型。

    - HTTP是无状态:HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。

  5.HTTP之URL:

    HTTP使用统一资源标识符(Uniform Resource Identifiers, URI)来传输数据和建立连接。URL是一种特殊类型的URI,包含了用于查找某个资源的足够的信息

URL,全称是UniformResourceLocator, 中文叫统一资源定位符,是互联网上用来标识某一处资源的地址。以下面这个URL为例,介绍下普通URL的各部分组成:http://www.aspxfans.com:8080/news/index.asp?boardID=5&ID=24618&page=1#name从上面的URL可以看出,一个完整的URL包括以下几部分:

    - 协议部分:该URL的协议部分为“http:”,这代表网页使用的是HTTP协议。在Internet中可以使用多种协议,如HTTP,FTP等等本例中使用的是HTTP协议。在"HTTP"后面的“//”为分隔符

    - 域名部分:该URL的域名部分为“www.aspxfans.com”。一个URL中,也可以使用IP地址作为域名使用

    - 端口部分:跟在域名后面的是端口,域名和端口之间使用“:”作为分隔符。端口不是一个URL必须的部分,如果省略端口部分,将采用默认端口

    - 虚拟目录部分:从域名后的第一个“/”开始到最后一个“/”为止,是虚拟目录部分。虚拟目录也不是一个URL必须的部分。本例中的虚拟目录是“/news/”

    - 文件名部分:从域名后的最后一个“/”开始到“?”为止,是文件名部分,如果没有“?”,则是从域名后的最后一个“/”开始到“#”为止,是文件部分,如果没有“?”和“#”,那么从域名后的最后一个“/”开始到结束,都是文件名部分。本例中的文件名是“index.asp”。文件名部分也不是一个URL必须的部分,如果省略该部分,则使用默认的文件名

    - 锚部分:从“#”开始到最后,都是锚部分。本例中的锚部分是“name”。锚部分也不是一个URL必须的部分

    - 参数部分:从“?”开始到“#”为止之间的部分为参数部分,又称搜索部分、查询部分。本例中的参数部分为“boardID=5&ID=24618&page=1”。参数可以允许有多个参数,参数与参数之间用“&”作为分隔符。

  6.HTTP之Request:

    客户端发送一个HTTP请求到服务器的请求消息包括以下组成部分:

    报文头:常被叫做请求头,请求头中存储的是该请求的一些主要说明(自我介绍)。服务器据此获取客户端的信息。

        常见的请求头:

        accept:浏览器通过这个头告诉服务器,它所支持的数据类型

        Accept-Charset: 浏览器通过这个头告诉服务器,它支持哪种字符集
        Accept-Encoding:浏览器通过这个头告诉服务器,支持的压缩格式
        Accept-Language:浏览器通过这个头告诉服务器,它的语言环境
        Host:浏览器通过这个头告诉服务器,想访问哪台主机
        If-Modified-Since: 浏览器通过这个头告诉服务器,缓存数据的时间
        Referer:浏览器通过这个头告诉服务器,客户机是哪个页面来的 防盗链
        Connection:浏览器通过这个头告诉服务器,请求完后是断开链接还是何持链接
        X-Requested-With: XMLHttpRequest 代表通过ajax方式进行访问

        User-Agent:请求载体的身份标识

    报文体:常被叫做请求体,请求体中存储的是将要传输/发送给服务器的数据信息。

    

  7.HTTP之Response:

    服务器回传一个HTTP响应到客户端的响应消息包括以下组成部分:

        

    状态码:以“清晰明确”的语言告诉客户端本次请求的处理结果。

        HTTP的响应状态码由5段组成:

  •   1xx 消息,一般是告诉客户端,请求已经收到了,正在处理,别急...
  •   2xx 处理成功,一般表示:请求收悉、我明白你要的、请求已受理、已经处理完成等信息.
  •   3xx 重定向到其它地方。它让客户端再发起一个请求以完成整个处理。
  •   4xx 处理发生错误,责任在客户端,如客户端的请求一个不存在的资源,客户端未被授权,禁止访问等。
  •   5xx 处理发生错误,责任在服务端,如服务端抛出异常,路由出错,HTTP版本不支持等。

    相应头:响应的详情展示

        常见的相应头信息:

            Location: 服务器通过这个头,来告诉浏览器跳到哪里
            Server:服务器通过这个头,告诉浏览器服务器的型号
            Content-Encoding:服务器通过这个头,告诉浏览器,数据的压缩格式
            Content-Length: 服务器通过这个头,告诉浏览器回送数据的长度
            Content-Language: 服务器通过这个头,告诉浏览器语言环境
            Content-Type:服务器通过这个头,告诉浏览器回送数据的类型
            Refresh:服务器通过这个头,告诉浏览器定时刷新
            Content-Disposition: 服务器通过这个头,告诉浏览器以下载方式打数据
            Transfer-Encoding:服务器通过这个头,告诉浏览器数据是以分块方式回送的
            Expires: -1 控制浏览器不要缓存
            Cache-Control: no-cache 
            Pragma: no-cache

    相应体:根据客户端指定的请求信息,发送给客户端的指定数据

二.HTTPS协议   

  1.官方概念:

    HTTPS (Secure Hypertext Transfer Protocol)安全超文本传输协议,HTTPS是在HTTP上建立SSL加密层,并对传输数据进行加密,是HTTP协议的安全版。

  2.白话概念:

    加密安全版的HTTP协议。

          

  3.HTTPS采用的加密技术

    3.1 SSL加密技术

        SSL采用的加密技术叫做“共享密钥加密”,也叫作“对称密钥加密”,这种加密方法是这样的,比如客户端向服务器发送一条信息,首先客户端会采用已知的算法对信息进行加密,比如MD5或者Base64加密,接收端对加密的信息进行解密的时候需要用到密钥,中间会传递密钥,(加密和解密的密钥是同一个),密钥在传输中间是被加密的。这种方式看起来安全,但是仍有潜在的危险,一旦被窃听,或者信息被挟持,就有可能破解密钥,而破解其中的信息。因此“共享密钥加密”这种方式存在安全隐患:

          

            

    3.2 非对称秘钥加密技术

        “非对称加密”使用的时候有两把锁,一把叫做“私有密钥”,一把是“公开密钥”,使用非对象加密的加密方式的时候,服务器首先告诉客户端按照自己给定的公开密钥进行加密处理,客户端按照公开密钥加密以后,服务器接受到信息再通过自己的私有密钥进行解密,这样做的好处就是解密的钥匙根本就不会进行传输,因此也就避免了被挟持的风险。就算公开密钥被窃听者拿到了,它也很难进行解密,因为解密过程是对离散对数求值,这可不是轻而易举就能做到的事。以下是非对称加密的原理图:

               

      但是非对称秘钥加密技术也存在如下缺点:

        第一个是:如何保证接收端向发送端发出公开秘钥的时候,发送端确保收到的是预先要发送的,而不会被挟持。只要是发送密钥,就有可能有被挟持的风险。

        第二个是:非对称加密的方式效率比较低,它处理起来更为复杂,通信过程中使用就有一定的效率问题而影响通信速度

  4.https的证书机制

    在上面我们讲了非对称加密的缺点,其中第一个就是公钥很可能存在被挟持的情况,无法保证客户端收到的公开密钥就是服务器发行的公开密钥。此时就引出了公开密钥证书机制。数字证书认证机构是客户端与服务器都可信赖的第三方机构。证书的具体传播过程如下:

      1:服务器的开发者携带公开密钥,向数字证书认证机构提出公开密钥的申请,数字证书认证机构在认清申请者的身份,审核通过以后,会对开发者申请的公开密钥做数字签名,然后分配这个已签名的公开密钥,并将密钥放在证书里面,绑定在一起

                

       2:服务器将这份数字证书发送给客户端,因为客户端也认可证书机构,客户端可以通过数字证书中的数字签名来验证公钥的真伪,来确保服务器传过来的公开密钥是真实的。一般情况下,证书的数字签名是很难被伪造的,这取决于认证机构的公信力。一旦确认信息无误之后,客户端就会通过公钥对报文进行加密发送,服务器接收到以后用自己的私钥进行解密。

转载于:https://www.cnblogs.com/xintiao-/p/10453497.html

爬虫第二弹之http协议和https协议相关推荐

  1. http协议和https协议对应的端口号

    http协议和https协议对应的端口号为: http: 80/8080: https:443.

  2. HTTP协议和HTTPS协议的区别

    HTTP协议和HTTPS协议的区别 1.HTTP协议传输的数据都是未加密的,也就是明文的,使用HTTP协议传输隐私信息不安全: 2.HTTPS协议是由SSL(安全套接层,为网络通信提供安全及数据完整性 ...

  3. 什么是HTTP协议和HTTPS协议,以及两者的区别

    HTTP协议 超文本传输协议(Hyper Text Transfer Protocol),是一个简单的请求-响应协议,它通常运行在TCP之上.它指定了客户端可能发送给服务器什么样的消息以及得到什么样的 ...

  4. 1.前端计网篇之HTTP协议和HTTPS协议

    目录 1.HTTP协议 1)GET和POST请求的区别 2)POST和PUT请求的区别 3)常见的HTTP请求头和响应头 (1)HTTP Request Header常见的请求头: (2)HTTP R ...

  5. 详解HTTP协议和HTTPS协议

    目录 一.HTTP协议 1.什么是HTTP 2.HTTP发展历史 3.HTTP请求和响应 4. 抓包的方式和工具Fiddler 1.开发者工具 2.Fiddler 二.请求和响应 1.请求和响应报文 ...

  6. HTTP协议和HTTPS协议初探

    概况 HTTP是hypertext transfer protocol(超文本传输协议)的简写,它是TCP/IP协议的一个应用层协议,用于定义WEB浏览器与WEB服务器之间交换数据的过程. HTTP是 ...

  7. android rtsp协议转http协议_Http协议和Https协议

    序言 Http和Https属于计算机网络范畴,但作为开发人员,不管是后台开发或是前台开发,都很有必要掌握它们. 在学习Http和Https的过程中,主要是参考了阮一峰老师的博客<阮一峰:HTTP ...

  8. 计算机网络整理:UDP协议和TCP协议

    系列文章目录 HTTP协议和HTTPS协议 文章目录 系列文章目录 一.TCP/IP 各层协议 二.UDP协议和TCP协议 1.TCP和UDP的区别 2.UDP 协议 3.TCP 协议 1)特点 2) ...

  9. nginx websocket wss 连接失败 failed_浅谈WebSocket协议、WS协议和WSS协议原理及关系

    现如今,一些游戏,网站,APP,支付行业的网络经常会收到DDOS和CC,因此这个事情也变得不足为奇了.但在防护方案中有多种不同的方案.如,今天有几个同事在针对高防CDN问题讨论的时,谈到WebSock ...

最新文章

  1. 编程入门:C语言基础知识全网超全不用到处找了!
  2. 操作系统思考 第二章 进程
  3. jq中法可以发起ajax请求的方法有,jQuery实现监控页面所有ajax请求的方法
  4. 在XCode工程中创建bundle文件
  5. Jmeter参数化HTTP request中Send Files With The Request的文件路径和文件名
  6. python爬虫之三 —— 淘宝评论
  7. 系统自带恶意软件清理助手
  8. 小米手机android目录在哪里设置字体,[小米手机]小米手机MIUI自己制作.MTZ字体包方法 无需ROOT权限...
  9. 用FFmpeg保存JPEG图片
  10. PowerVR 6系列架构分析
  11. “基础设施IP映射”你听说吗?
  12. (实测可用)STM32CubeMX教程-STM32L431RCT6开发板(定时器Timer2)
  13. 2005路网 2008路网 2009路网 2010路网 2011路网 2012路网 2013路网 2014路网 2015路网2016路网 2017路网 2018路网 2019路网下载与分析
  14. 余生,不回头,不将就
  15. 葫芦娃手游服务器未响应,葫芦娃充值没反应 充值元宝未到账解决办法
  16. LOONGSON派二代 PMON编译
  17. 使用线性回归实现波士顿房价预测
  18. 单片机变成了业余爱好
  19. 做seo需要会ps吗?
  20. Pixy(Cmucam5)通过SPI与Arduino通信

热门文章

  1. 苹果cmsv10蓝色简洁影视电影资源采集网站模板
  2. 生死狙击九天取密(逍遥工作室)
  3. (stable_sort稳定排序)阿罗拉联盟赛
  4. html map背景图,用地图做背景墙竟然这么美!这个秘密你造吗?
  5. 根据递推公式构造系数矩阵用于快速幂
  6. GANs系列:用于图像风格迁移的CycleGAN网络原理解读
  7. Tomcat架构浅析
  8. [喵咪开源软件推荐(6)]TCP链路加速技术KcpTun
  9. 《Dynamic Filter Networks》动态过滤网络
  10. Java面试题最新更新