走进 - Http - a

走进 - Http - a

文章目录

1.发展历史

  • HTTP/0.9(问世):1990年,
  • HTTP/1.0:1996年5月,记载于RFC1945
    • RFC1945 - Hypertext Transfer Protocol – HTTP/1.0
  • HTTP/1.1:1997年1月,标准RFC2068,修订RFC2616
    • RFC2616 - Hypertext Transfer Protocol – HTTP/1.1

2.TCP/IP

  • TCP/IP是互联网相关各类协议族的总称
    • 协议中存在各式各样的内容。
      • 从电缆到规格到IP的选定方法,寻找异地用户的方法、双方建立通信的顺序,以及web页面显示需要处理的步骤,等等。

2.1 TCP/IP协议分层管理

  • TCP/IP协议族按层次分:
    • 应用层
      • 决定向用户提供服务时通信的活动
    • 传输层
      • 对应上层应用,提供处于网络连接中的两台计算机之间的数据传输
      • 两个协议:
        • TCP(Transmission Control Protocol)传输控制协议
        • UDP(User Data Protocol)用户数据报协议
    • 网络层(网络互联层)
      • 处理网络中的流动的数据包(数据传输的最小单位)
      • 规定了通过怎样的路径到达对方计算机,并把数据包传送给对方
    • 链路层(又名数据链路层,网络接口层)
      • 处理连接网络的硬件部分
        • 操作系统,硬件的设备驱动,NIC(Network Interface Card,网络适配器,即网卡),光纤等物理可见部分(包括连接器等一切传输媒介)

2.2 通信传输流

​ [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tMPwRrXQ-1576342371055)(C:\Users\ANGLE0\AppData\Roaming\Typora\typora-user-images\image-20191213232633213.png)]

  • 流程

    • 应用层发出请求
    • 传输层(TCP协议)—>分割报文并标号
    • 网络层(IP协议)—>增加作为通信目的地的MAC地址
      • 链路层传送
    • 网络层
    • 传输层
    • 应用层
  • 流程图示:

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-69DyECUu-1576342371069)(C:\Users\ANGLE0\AppData\Roaming\Typora\typora-user-images\image-20191213235257650.png)]

2.3 IP协议(Internet Protocol)

  • 网际协议位于网络层,TCP/IP 中IP就是指网际协议
  • 作用:数据包发送给对方
    • 依赖信息:IP地址+MAC地址(Media Access Control Address)
  • 网络中实际应用:采用ARP(Address ResolutionProtocel)解析地址的协议,依据通信方的IP地址反差出对应的MAC地址

2.4 TCP协议

  • 传输层,提供可靠的字节流服务(Byte Stream Sercive)
  • 为了方便传输将大块数据分割成以报文段(segment)为单位的数据包进行管理
  • 可靠性:TCP协议能够确认数据最终是否送达到对方
    • 三次握手(three-way handshaking)
    • 标记:确认信息是否成功到达的:flag - SYN(synchronize),ACK(acknowlodgement)
    • 流程:
      • 发送端—>(带SYN标志的数据包)
      • (带SYN/ACK的数据包)<—接收端接收到后
      • 发送端—>(回传ACK标志的数据包),至此握手结束

2.5 DNS服务(Domain Name System)

  • 应用层
  • 域名到IP的解析服务,IP到域名的反查服务

2.6 URI和URL

  • URI(统一资源标识符)
  • URL(Uniform Resource Locator,统一资源定位符)

2.7 统一资源标识符

  • URI(Uniform Resource Identifier)
    • Uniform:规定统一的格式可方方便处理多种不同类型的资源,不用根据上下文环境来识别资源指定的访问方式
    • Resource:资源的定义是“可标识的任何东西”,可以是单个,也可以是多数集合体
    • Identifier:可标识的对象
  • URI用字符串标识某一互联网资源 > URL表示资源的地点

2.8 URI格式

  • 表示指定的URI,要使用涵盖全部必要信息的绝对URI,绝对URL相对URL
    • 相对URL,是指从浏览器中基本URI指定的URL
  • 示例:http://use:pass@www.text.com:8080/dir/doc/index.jsp?id=1#page1
    • http://协议信息
    • use:pass登录信息(可选)
    • www.text.com服务器地址
    • 8080服务端口号
    • dir/doc/index.jsp带层次的文件路径
    • id=1查询字符串(可选)
    • page1片段标识符(可选)

3.HTTP协议

  • 协议规定:请求从客户端发出,服务端响应并返回
  • 无状态(stateless)协议(不保存状态,不对请求和响应之间的通信状态进行保存),即就是HTTP这个级别,协议对发送过的请求和响应都不做持久化处理
  • 设计之初为了快速处理大量事务,确保协议的可升缩性
    • 现在由于业务需要,需要保存状态等,引入Cookie技术实现这个操作

3.1 定位资源

  • 使用URI
  • 客户端请求访问资源时,URI将作为请求报文中的 请求URI 包含在内
    • URI 为完整的请求URI
    • 例如:GET http://www.baidu.com HTTP/1.1
  • 对服务器本省发起请求(* 代替 请求URI)
    • OPTIONS * HTTP/1.1

3.2 告知服务器意图的HTTP方法

  • GET:
    • 获取资源
    • 请求已被URI识别资源,指定资源被服务器解析后返回响应内容
      • 资源为文本:保持原样返回
      • 资源为类似CGI(Common Gateway Interface,通用网关接口)的程序:返回执行后的输出结果
  • POST:
    • 传输实体主体
    • GET方法也可传输实体,但POST主要内容并非获取响应内容
  • PUT:
    • 传输文件
    • HTTP/1.1时不带验证机制,存在安全问题
      • 一般使用REST(Representational State Transfer,表征状态转移)标准的同类WEB网站,可能开放使用
  • HEAD:
    • 获取报文首部
    • 和GET方法一样,但不返回报文主体
    • 一般用于确认URI的有效性及资源更新日期
  • DELETE:
    • 删除文件
    • HTTP/1.1时不带验证机制
      • 一般使用REST(Representational State Transfer,表征状态转移)标准的同类WEB网站,可能开放使用
  • OPTIONS:
    • 询问支持的方法
    • 查询请求URI支持的方法
  • TRACE:
    • 追踪路径
    • 让WEB服务器端将之前请求的通信返回给客户端的方法
    • 操作:
      • 发送请求时在Max-Forwards中填入数值每过一层减一(直至到0时停止传输),最后接到请求的服务器返回200 OK 的响应
    • 可以查询发送出去的请求是如何被加工的
    • 风险:
      • 容易受到(XST, Cross-Site Tracing,跨站追踪的攻击),通常不使用
  • CONNECT:
    • 要求用隧道协议连接代理
    • 实现用隧道协议进行TCP通信,主要使用SSL(Secure Sockets Layer,安全套接层)和TSL(Transport Layer Security,传输层安全)协议加密通信内容后经过网络隧道传输

3.3 1.0和1.1支持的方法

X—不支持,O—支持

协议 1.0 1.1
LINK O X
UNLINK O X
GET O O
POST O O
PUT O O
DELETE O O
OPTIONS X O
TRACE X O
CONNECT X O

3.4 持久连接

  • 初识的HTTP通信要求每次通信都要断开TCP
  • 应对策略
    • HTTP Persistent Connections( 别名:HTTP keep-alive或HTTP connection reuse)
  • HTTP/1.1中默认使用持久化连接

3.5 管线化

  • 持久连接使得多数请求以管线化(pipelining)方式发送成为可能,不用等响应即可发送下一个请求

3.6 使用Cookie

  • Cookie通过在请求和响应报文中写入Cookie来控制客户端的状态
  • Cookie根据响应报文中的set-Cookie的首部字段通知客户端保存Cookie
  • 加入Cookie后的请求流程:
    • 1.客户端请求:首部不含Cookie
    • 2.服务端响应:响应报文中含有通知客户端保存Cookie的字段,客户端保存Cookie
    • 3.客户端请求:首部自动添加上保存的Cookie

4.HTTP报文内的信息

4.1 HTTP报文

  • 构成:

    • 多行字符串构成的字符串文本(换行由回车符CR(16进制0x0d)+ 换行符LF(16进制0x0a))
    • 报文大致分为:报文首部+报文主体
  • 图示:

    • 请求报文结构

    在这里插入图片描述

    • 响应报文结构

    在这里插入图片描述

  • 请求行:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值