零散知识点
HTTP/1.0版的主要缺点
每个 TCP 连接只能发送一个请求,发送完数据之后,连接就会关闭,再次想要发送数据的话就需要进行,再次连接
TCP连接的新建成本很高,因为需要客户端和服务器端三次握手。
三次握手的简单交流流程
- 客户端发起连接
- 客户端发起请求
- 服务端响应请求
- 服务端关闭连接
请求消息的结构
- 请求行
- 请求头字段
- 一个空行
- 消息主体
- 消息主体是响应消息的承载数据
URI URL URN
- 缩写
- URI
- Uniform Resource Identifier (统一资源标识符)
- URL
- Uniform Resource Locator (统一资源定位符)
- URN
- Uniform Resource Name (统一资源名称)
- URI 与 URL 的区别
- URI 是统一资源标识符,用来唯一的标识一个资源
- URL 是统一资源定位器
- URN 是统一资源名称,通过名字来表示资源的
- URI 一般由三部分组成
- 访问资源命名机制
- 存放资源的主机名
- 资源自身的名称,由路径表示,且着重强调于资源
GET、POST、PUT、DELETE、HEAD、OPTIONS、TRACE、CONNECT
- GET 提交表单、上传文件
- POST 传输实体主体
- PUT 传输文件
- DELETE 删除文件
- HEAD 读取报文的首部(读取资源的元数据)
- OPTIONS 询问这项资源所支持的所有请求方法
- TRACE 回显服务器收到的额请求
- CONNECT 保留到未来使用的关键字
HTTP超文本传输协议是一个基于请求与响应模式的,无状态的,应用层的协议,常基于TCP的连接方式
HTTP 表示通过HTTP协议定位网络资源,host表示合法的Internet主机域名或者ip地址,port指代端口号
请求报文结构
- 第一行 : 方法、URL、协议版本
- 第二行 :请求首部字段
- 第三行 : 内容实体
状态码
- 302:临时跳转
- url地址a可以向url地址b上跳转,但这并不意味着是永久性的,有可能过短时间就从url地址a跳转到地址c。
- 301:永久性的重定向
- 200:OK
- 202:服务器已经接受请求,但尚未处理
- 204:服务器成功处理了请求,但不需要返回如何实体内容
- 304:被请求的资源内容没有发生更改
- 400:包含语法错误,无法被服务器解析
- 403:为服务器已经接收请求,但是被拒绝执行
- 404:请求失败
- 500:服务器内部错误,无法处理请求
- 502:作为网关或者代理工作的服务器尝试执行请求时,从上游服务器接收到无效响应
- 504:作为网关或者代理工作的服务器尝试执行请求时,未能及时从上游服务器(URI标识出的服务器,例如HTTP、FTP、LDAP)或者辅助服务器(例如DNS)收到响应
工作原理
客户端连接到web服务器
发送 HTTP 请求
服务器接收请求,并返回 HTTP 响应
释放 TCP 连接
客户端/浏览器 解析 HTML 内容