http简单总结

参考学习:https://www.cnblogs.com/zhangyfr/p/8662673.html
1.HTTP特点

HTTP是无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。
HTTP是媒体独立的:这意味着,只要客户端和服务器知道如何处理的数据内容,任何类型的数据都可以通过HTTP发送。客户端以及服务器指定使用适合的MIME-type内容类型。
HTTP是无状态:HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快

2.HTTP内容
HTTP请求:
HTTP请求是客户端往服务端发送请求动作,告知服务器自己的要求。

HTTP请求由状态行、请求头、请求正文三部分组成:
状态行:包括请求方式Method、资源路径URL、协议版本Version;
请求头:包括一些访问的域名、用户代理、Cookie等信息;
请求正文:就是HTTP请求的数据。
在这里插入图片描述

根据HTTP标准,HTTP请求可以使用多种请求方法。
HTTP1.0定义了三种请求方法: GET, POST 和 HEAD方法。
HTTP1.1新增了五种请求方法:OPTIONS, PUT, DELETE, TRACE 和 CONNECT 方法。

HTTP响应:
服务器收到了客户端发来的HTTP请求后,根据HTTP请求中的动作要求,服务端做出具体的动作,将结果回应给客户端,称为HTTP响应。

HTTP响应由三部分组成:状态行、响应头、响应正文;

状态行:包括协议版本Version、状态码Status Code、回应短语;
响应头:包括搭建服务器的软件,发送响应的时间,回应数据的格式等信息;
响应正文:就是响应的具体数据。

在这里插入图片描述
3.HTTP 1.0 1.1 2.0

长连接
缓存处理
错误状态码管理
host头处理
带宽优化及网络连接的使用

2.0

新的二进制格式
多路复用
header压缩
服务端推送(SPDY)

4.HTTP状态码
参考学习:https://www.cnblogs.com/EFPlatform/p/9591775.html

1开头(临时响应)表示临时响应并需要请求者继续执行操作的状态码
2开头 (请求成功)表示成功处理了请求的状态代码。
3开头 (请求被重定向)表示要完成请求,需要进一步操作。 通常,这些状态代码用来重定向。
4开头 (请求错误)这些状态代码表示请求可能出错,妨碍了服务器的处理。
5开头(服务器错误)这些状态代码表示服务器在尝试处理请求时发生内部错误。 这些错误可能是服务器本身的错误,而不是请求出错。

200/304/400/401/403/404/500/503/504/505

5.HTTP与HTTPS区别

HTTPS协议需要到CA申请证书,一般免费证书很少,需要交费。
HTTP协议运行在TCP之上,所有传输的内容都是明文,HTTPS运行在SSL/TLS之上,SSL/TLS运行在TCP之上,所有传输的内容都经过加密的。
HTTP和HTTPS使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。
HTTPS可以有效的防止运营商劫持,解决了防劫持的一个大问题。

缓存策略: 可分为 强缓存 和 协商缓存

Cache-Control/Expires: 浏览器判断缓存是否过期,未过期时,直接使用强缓存,Cache-Control的 max-age 优先级高于 Expires
当缓存已经过期时,使用协商缓存
    唯一标识方案: Etag(response 携带) & If-None-Match(request携带,上一次返回的 Etag): 服务器判断资源是否被修改
    最后一次修改时间: Last-Modified(response) & If-Modified-Since(request,上一次返回的Last-Modified)
        如果一致,则直接返回 304 通知浏览器使用缓存
        如不一致,则服务端返回新的资源
Last-Modified 缺点:
    周期性修改,但内容未变时,会导致缓存失效
    最小粒度只到 s, s 以内的改动无法检测到
Etag 的优先级高于Last-Modified

HTTP的几种请求方法用途

GET方法
    发送一个请求来取得服务器上的某一资源
POST方法
    向URL指定的资源提交数据或附加新的数据
PUT方法
    跟POST方法很像,也是想服务器提交数据。但是,它们之间有不同。PUT指定了资源在服务器上的位置,而POST没有
HEAD方法
    只请求页面的首部
DELETE方法
    删除服务器上的某资源
OPTIONS方法
    它用于获取当前URL所支持的方法。如果请求成功,会有一个Allow的头包含类似“GET,POST”这样的信息
TRACE方法
    TRACE方法被用于激发一个远程的,应用层的请求消息回路
CONNECT方法
    把请求连接转换到透明的TCP/IP通道

有关·定义
请求头:访问的域名 用户代理 cookie等信息。
响应头:发送响应的时间 搭建服务器的软件 回应数据格式等
用户代理(用户代理 User Agent,是指浏览器,它的信息包括硬件平台、系统软件、应用软件和用户个人偏好。)

http1.0与http1.1区别中:(可扩展性)
扩展性的一个重要原则:如果HTTP的某个实现接收到了自身未定义的头域,将自动忽略它。
via头域:记录整个路径发送方使用的版本。
OPTION:允许客户端获取一个服务器支持的方法列表。
Upgrade头域:客户端可以让服务器知道它能够支持的其它备用通信协议

原文地址:https://www.cnblogs.com/princeness/p/11664929.html