PS: 参考一些博客整理供自己复习~
HTTP和HTTPS
- HTTP:最广泛网络协议,浏览器高效。
- HTTPS:安全版,通过SSL加密,加密传输,身份认证,密钥。
区别:
- HTTPS相对于HTTP加入了SSL层,加密传输,身份认证。
- 需要到ca申请收费的证书。
- 安全但是耗时多,缓存不是很好。
- 连接方式不同,端口号也不同,HTTP是80,HTTPS是443。
HTTP请求头
- Accept:浏览器接受的格式。
- Accept-Encoding:浏览器接受的编码格式。
- Accept-Language:浏览器接受的语言,用于服务器判断多语言。
- Cache-Control:控制缓存的时效性。
- Connection:连接方式,keep-alive且服务端支持,则会复用TCP连接。
- Host:HTTP访问使用的域名。
- If-Modified-Since:上次访问时的更改事件,如果服务端认为此时间后自己没有更新,则会给出304响应。
- If-None-Match:上次访问时使用的E-Tag,通常是页面的信息摘要,比更改时间更加准确一些。
- User-Agent:客户端标识,因为一些历史原因,多数浏览器的这个字段十分复杂包括操作系统,浏览器内核,版本号等。
- Cookie:客户端存储的cookie字符串。
HTTP状态码
- 100 Continue 继续,一般在发送POST请求时,已发送了http header之后服务端将返回此信息,表示确认,之后发送具体参数信息。
- 200 OK 正常返回信息。
- 201 Created 请求成功并且服务器创建了新的资源
- 202 Accepted 服务器已接受请求,但尚未处理。
- 301 Moved Permanently 请求的网页已永久移动到新位置。
- 302 Found 临时重定向。
- 303 See Other 临时性重定向,且总是使用GET请求新的URI。
- 304 Not Modified 自从上次请求后,请求的网页未修改过。
- 400 Bad Request 服务器无法理解请求的格式,客户端不应当尝试再次使用相同的内容发起请求。
- 401 Unauthorized 请求未授权。
- 403 Forbidden 禁止访问。
- 404 Not Found 找不到与URL相匹配的资源。
- 500 Internal Server Error 最常见的服务器端错误。
- 503 Service Unavailable 服务器端暂时无法处理请求(可能是维护或过载)。
HTTP1.0,HTTP1.1,HTTP2.0详解
- 长连接
- 短连接:客户端和服务器每进行一次HTTP操作,就建立一次连接,任务结束就中断连接。
- 长连接:客户端和服务器之间用于传输HTTP数据的TCP连接不会关闭,客户端再次访问这个服务器时,会继续使用一条已经建立的连接。
- HTTP实现长连接的方式:HTTP1.0需要使用keep-alive参数来告知服务器端要建立一个长连接,而HTTP1.1默认支持长连接。
HTTP1.0 无状态无连接。
HTTP1.1 持久连接、请求管道化、增加缓存处理(如cache-control)、增加Host字段,支持断点传输等。
HTTP2.0 二进制分帧、多路复用、头部压缩、服务器推送。