HTTP协议

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HTTP协议相关的知识,希望对你有一定的参考价值。

参考技术A

   1.基本概念

      1> 协议:指计算机通信网络中两台计算机之间进行通信所必须共同遵守的规定或规则

      2> HTTP协议:超文本传输协议(HTTP) 是一种通信协议,它允许将超文本标记语言(html)文档从Web服务器传送到客户端的浏览器

      2.URl和URL的区别

         1>URl:是uniform resource identifier,统一资源标识符,用来唯一的标识一个资源(XML,图片,视频等)

           flie://a:1234/b/c/d.txt 表示该资源在a主机下的1234端口的b目录下的c目录的d.txt文件

    URl的三个组成部分

    1) 访问资源的命名机制

    2) 存放资源的主机名

    3) 资源自身的名称,由路径表示.着重强调与资源

         2>URL:uniform resource locator,统一资源定位器.它是一种具体的URl,即URL可以用来标识一个资源,而且还指明了如何locate这个资源.

            www.baidu.com 

     URl的三个组成部分

    1) 协议

    2) 存有该资源的主机IP地址

    3) 主机资源的具体地址

        1) 简单快速

        2) 无连接

        3) 无状态

打开浏览器,在地址栏中输入URL,然后我们就看到了网页.

简单原理: 当输入了地址后,我们的浏览器就向我们的web服务器发送了一个request请求,而我们的web服务器收到这request请求之后会进行相应的处理生成相应的response.然后发送给我们的浏览器,浏览器进行解析response当中的xml文档,这样就可以看到我们的网页.

1.http1.1/http1.0的区别

    1) http1.0产生的背景

         超文本传输协议(HyperText Transfer Protocol)伴随着计算机网络和浏览器的诞生,HTTP1.0也随之而来,处于计算机网络中的应用层.

    2) http1.0所做的优化

         带宽:现阶段已经解决

         延迟:1> 浏览器阻塞:浏览器对于同一个域名,同时只能有四个连接

         延迟 2>DNS查询:浏览器需要知道目标服务器的IP才能建立连接

         延迟 3> 建立连接:三次握手

    3) http1.1 / http1.0的具体区别

            1> 缓存处理

            2> 宽带优化及网络连接的使用

            3> Host头处理

            4> 长连接

    4) http1.1 / http1.0存在的问题

         a http1.0传输数据的时候,每次都需要重新建立连接,无疑增加了大量的延迟时间 [使用http1.1]

         b http1.1传输数据的时候,所有传输的内容都是明文,客户端和服务端都无法验证对方的身份 [使用https]

         c http1.1在使用时,header里携带的内容过大,在一定程度上增加了传输成本.移动端浪费用户的流量

         d http1.1支持了keep-alive,来弥补多次创建连接产生的延迟,但是keep-alive使用多了同样会给服务端带来大量的性能压力 

2.get/post方法的区别

            get:获取资源

            post:提供资源

        a.提交数据

        b.提交数据大小是否有限制

        c.取得变量的值Request.QueryString vs Request.Form

        d.安全问题

3.coolie和sesion的区别

        1) Cookie

                Cookie技术是客户端的解决方法,Cookie就是由服务器发给客户端的特殊信息,而这些信息以文本文件的方式存放在客户端,然后客户端每次向服务器发送请求的时候都会带上这些特殊的信息.

      

 2) Sesion

        Session是另一种记录客户状态的机制,不同的是Cookie保存在客户端浏览器中,而Session保存在服务器上.客户端浏览器访问服务器的时候,服务器把客户端信息以某种形式记录.

           工作原理

    创建Session--->服务器会为该Session生成唯一的ID ---> 在Session被创建后,就可以调用Session相关的方法往Session中增加内容--->当客户端再次发送请求的时候,会将这个Session Id带上,服务器请求到数据的时候就会根据Session id 找到相应的Session

    a.存放位置不同

    b.存取方式不同

    c.安全性(隐私策略)不同

    b.有效期上的不同

    e.对服务器造成的压力不同

https并不是一个单独的协议,而是对工作在一加密连接(SSL/TLS)上的常规HTTP协议.通过在TCP和HTTP之间加入TLS(Transport Layer Security)来加密.

 SSL协议,是一种安全传输协议,TLS是SSL v3.0的升级版

    1) 通信满

    2) SSL必须进行加密处理

    1) 密码学原理 [保护数据安全措施]

            1> 对称加密

                      · 加密数据用的密钥,跟解密数据用的密钥是一样的

            2> 非对称加密

                      · 私有密钥: 一方保管 公有密钥:双方公有

                            加密的数据使用私钥加密 用公钥解密    

                            加密的数据使用公钥加密 用私钥解密

    2) 数字证书 [ 互联网通讯中标志通讯各方身份信息的一串数字 ]  

            1> 为什么要有数字证书?

                    解决数据的安全问题

           2> 数字证书的颁发过程?

                    首先产生自己的密钥 ---> 讲公共密钥和私有密钥交给认证中心 ---> 认证中心核实身份 ---> 将确认信息发给用户 ---> 随后提供数字证书.

    3) SSL 与 TLS 握手整个过程

          

    Https实际就是在TCP层与http层之间加入了 SSL / LTS 来为上层的安全保驾护航,主要用到对称加密、非对称加密、数字证书等技术进行客户端和服务端的数据加密传输,最终达到保证整个通信的安全性.

    


    

Linux-http协议(应用层协议)-http概述-http格式-http版本-http方法-http状态码

1. HTTP协议(应用层)

1.1 http协议的概述

  超文本传输协议,是属于应用层的协议,web->server,无连接,无状态,那是不是可以说是不安全的?不是的,在传输层是使用的TCP协议,而TCP是面向连接的,所以是安全的。

1.2 http协议的url解释

在这里插入图片描述

  1. 协议方案名
  2. 登录信息(认证)
  3. 服务器地址
  4. 服务器端口号
  5. 带层次的文件路径
  6. 查询字符串
  7. 片段标识符

  http和https,区别https会加密传输,这两个方法中相差一个ssl,使用的是非对称加密,http监听80端口,https监听443端口。

1.3 urlencode和urldecode

C+±>C%2B%2B
  urlencode:将字符转换成为16进制
  urldecode:将16进制转换成字符
  %:提示服务器后面的数据是被urlencode过的,多个key=value的键值对,以&符号进行分割。
  片段标识符:定位资源的位置
命令: ping 网址
功能: 得到网址的ip地址
在这里插入图片描述

1.4 http协议的格式

请求:
在这里插入图片描述
响应
在这里插入图片描述
  首行: 【版本号】+【状态码】+【状态码解释】
  Header: 请求的属性,冒号分割的键值对,每组属性之间使用\\r\\n分割,遇到空行表示Header部分结束
  Body: 空行后面的内容都是Body,Body允许为空字符串,如果Body存在,则在Header中会有一个Content-Length属性来标识Body的长度,如果服务器返回了一个html页面,那么html页面的内容就再body当中。

1.5 http的协议版本

  HTTP/0.9 :1990年问世,没有作为正式的标准
  HTTP/1.0 :1996年5月公布,初期版本
  HTTP/1.1 :1997年1月公布,目前主流的HTTP协议版本
  HTTP/2.0 :新一代的HTTP协议版本,暂时未被广泛使用

1.6 http的方法

方法说明支持的HTTP协议版本
GET获取资源1.0、1.1
POST传输实体主体1.0、1.1
PUT传输文件1.0、1.1
HEAD获得报文首部1.0、1.1
DELETE删除文件1.0、1.1
OPTIONS询问支持的方法1.1
TRACE追踪路径1.1
CONNECT要求用隧道协议连接代理1.1
LINK建立和资源之间的联系1.0
UNLINE断开连接关系1.0

1.7 http的状态码

类别原因短语
1xxinformational(信息性状态码)接收的请求正在处理
2xxsuccess(成功状态码)请求正常处理完毕
3xxredirection(重定向状态码)需要进行附加操作以完成请求
4xxClient Error(客户端错误状态码)服务器无法处理请求
5xxserver error(服务器错误状态码)服务器处理请求出错

常见的状态码:
  200(ok)
  404(not found)
  403(forbidden)
  302(redirect)
  504(bad gateway)

1.8 http常见Header

  content-type: 正文数据类型(text/html等)
  content-length: body的长度,描述正文的长度
  host: 客户端告知服务器请求的资源在哪个主机的哪个端口
  user-agent: 声明用户的操作系统和浏览器版本信息,可以防止爬虫
  referer: 当前页面是从哪个页面跳转过来的
  location: 搭配3xx状态码使用,告诉客户端接下来去哪里
  cookie: 用于在客户端存储少量信息,通常用于实现会话功能,存了会话ID,服务器通过会话ID就能知道是谁,这个是存在服务器当中的

2. 零碎知识点

  1.持久化处理叫做保存。
  2.三次握手之后还会ssl握手:决定了用什么算法,什么证书,服务端私钥解密,客户端公钥加密。

以上是关于HTTP协议的主要内容,如果未能解决你的问题,请参考以下文章

HTTP协议工作原理是啥 HTTP协议工作原理介绍【详解】

HTTP 之 HTTP协议(HTTP协议概述HTTP消息缓存控制相关头部Cookie相关头部)

HTTP协议

Linux-http协议(应用层协议)-http概述-http格式-http版本-http方法-http状态码

大话http协议

Http协议简单解析