4. HTTP
4.1 什么是HTTP
HTTP(超文本传输协议)是一个简单的请求-响应协议,它通常运行在TCP之上。
- 文本:html、字符串
- 超文本:图片、音乐、视频等
- 端口:80
HTTPS:安全的
- 443
4.2 两个时代
- http1.0
- HTTP/1.0:客户端可以与web服务器连接,只能获得一个web资源,断开连接
- http2.0
- HTTP/1.1:客户端可以与web服务器连接后,可以获得多个web资源
4.3 HTTP请求
- 客户端 — 发请求(Request) — 服务器
百度:
Request URL:https://www.baidu.com/ 请求地址 Request Method:GET get方法/post方法 Status Code:200 OK 状态码: 200 Remote (远程) Address :14.215.177.39:443 Referrer Policy:no-referrer-when- downgrade
1. 请求行
- 请求行中的请求方式:GET
- 请求方式:Get/Post
- Get:请求能够携带的参数比较少,大小有限制,会在浏览器的URL地址栏显示数据内容,不安全,但高效
- Post:请求能够携带的参数比较少,大小有限制,会在浏览器的URL地址栏显示数据内容,不安全,但高效
2. 消息头
Accept:告诉浏览器,它所支持的数据类型 Accept-Encoding:支持哪种编码格式 GBK、UTF-8、GB2312 Accept-Language:告诉浏览器,他的语言环境 Cache-Control:缓存控制 Connection:告诉浏览器,请求完成是断开还是保持连接 HOST:主机
4.4 HTTP响应
- 服务器 – 响应 – 客户端
百度:
cache-Contro1 :private 缓存控制 Connection:Keep-Alive 连接:保持连接 Content-Encoding :gzip 编码 Content-Type : text/htm1 类型
1. 响应体
Accept:告诉浏览器,它所支持的数据类型 Accept-Encoding:支持哪种编码格式 GBK、UTF-8、GB2312 Accept-Language:告诉浏览器,他的语言环境 Cache-Control:缓存控制 Connection:告诉浏览器,请求完成是断开还是保持连接 HOST:主机 Refresh:告诉客户端,多久刷新一次 Location:让网页重新定位
2.响应状态码
- 200:请求响应成功
- 3**:请求重定向
- 重定向:你重新到我给你的新位置去
- 404:找不到资源
- 资源不存在
- 5xx:服务器代码错误 500 502(网关错误)
常见面试题:
当你的浏览器中地址栏输入地址并回车的一瞬间到页面能够展示回来,经历了什么?
- 将输入的域名转化为IP地址:本地缓存、浏览器缓存、路由器缓存、DNS查询
- 浏览器向Web服务器发送 HTTP 请求:TCP的三次握手、Cookies随着请求发送给服务端
- 服务器处理请求:处理请求和它的参数、cookies、生成一个 HTML 响应
- 服务器返回一个HTML响应
- 携带的数据渲染至浏览器页面,进行呈现