JavaEE学习笔记(一)HTTP理论基础

一、HTTP概述

1.1. 请求

所有从客户端发起的请求,以及相关信息,必然全部从哪里获取?

所有的信息都要从request里面获取。输入流来获取。

通过代理可以绕过防火墙访问网址

1.2. 响应

到底响应什么,由谁决定?

都由response决定,借助于IO流完成

UTOOLS1566781318886.png

UTOOLS1566781604276.png

1.3. headers

它可以影响浏览器行为(请求和响应一致才会出结果)

只要服务端和客户端就新 headers 达成语义一致,新功能就可以被轻松加入进来。

1.4. HTTP是无状态的,有会话的

HTTP无状态:在同一个连接中,两个执行成功的请求之间是没有关系的。

UTOOLS1566782676923.png

客户端技术 HTTP Cookies :可以实现会话一致

会话相当于网页版的电商网站需要登陆一样,登陆后才会将属于你的数据返回给你

1.5. HTTP能控制什么

  • 缓存
    • 文档如何缓存能通过HTTP来控制。服务端能告诉代理和客户端哪些文档需要被缓存,缓存多久,而客户端也能够命令中间的缓存代理来忽略存储的文档。
    • 缓存相当于页面中固定或者长时间存在的数据
  • 开放同源限制
    • 为了防止网络窥听和其它隐私泄漏,浏览器强制对Web网站做了分割限制。只有来自于相同来源的网页才能够获取网站的全部信息。这样的限制有时反而成了负担,HTTP可以通过修改头部来开放这样的限制,因此Web文档可以是由不同域下的信息拼接成的(某些情况下,这样做还有安全因素考虑)。
  • 认证
    • 一些页面能够被保护起来,仅让特定的用户进行访问。基本的认证功能可以直接通过HTTP提供,使用Authenticate相似的头部即可,或用HTTP Cookies来设置指定的会话。
    • 特定的用户进行访问:eg:网页只允许局域网内的用户才可访问
  • 代理和隧道
    • 通常情况下,服务器和/或客户端是处于内网的,对外网隐藏真实 IP 地址。因此 HTTP 请求就要通过代理越过这个网络屏障。但并非所有的代理都是 HTTP 代理。例如,SOCKS协议的代理就运作在更底层,一些像 FTP 这样的协议也能够被它们处理。
  • 会话
    • 使用HTTP Cookies允许你用一个服务端的状态发起请求,这就创建了会话。虽然基本的HTTP是无状态协议。这很有用,不仅是因为这能应用到像购物车这样的电商业务上,更是因为这使得任何网站都能轻松为用户定制展示内容了。

二、HTTP流

当客户端想要和服务端进行信息交互时(服务端是指最终服务器,或者是一个中间代理),过程表现如下图

UTOOLS1566783906111.png

last-Modified:最后一次修改的时间

三、HTTP报文

HTTP/1.1以及更早的HTTP协议报文都是语义可读的。在HTTP/2中,这些报文被嵌入到了一个新的二进制结构,帧。帧允许实现很多优化,比如报文头部的压缩和复用。即使只有原始HTTP报文的一部分以HTTP/2发送出来,每条报文的语义依旧不变,客户端会重组原始HTTP/1.1请求。因此用HTTP/1.1格式来理解HTTP/2报文仍旧有效。

有两种HTTP报文的类型,请求与响应,每种都有其特定的格式。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值