简介
HTTP(HyperText Transfer Protocl) 建立在TCP上的无状态无连接的超文本传输协议
HTTP请求
客户端发起请求到服务端
HTTP请求包括:
1、状态行 请求方式Method、资源路径URL、协议版本Version
2、请求头 访问的域名、用户代理、Cookie等
3、请求报文 请求数据
HTTP响应
客户端发起请求到服务端,服务端做出的响应动作
HTTP响应包括:
1、状态行 协议版本Version、状态码Status Code、回应短语
2、响应头:响应格式、发送响应时间
3、响应正文:响应的具体数据
Status Code:
1xx:表示HTTP请求已经接受,继续处理请求
2xx:表示HTPP请求已经处理完成
3xx:表示把请求访问的URL重定向到其他目录
301:请求永久重定向
302:请求临时重定向
4xx:表示客户端出现错误
400:请求存在语法错误
401:请求没有授权
404:请求地址不存在
5xx:表示服务端出现错误
HTTP响应模型
1、单进程I/O模型
2、多进程I/O模型
3、复用I/O模型
4、复用多线程I/O模型
HTTP报文格式
HTTP报文是应用程序之间传输的数据块
请求报文:
起始:状态行
首部:
Accept 指定客户端能够接收的内容格式类型
Accept-Language 指定客户端能够接收的语言类型
Accept-Ecoding 指定客户端能够接收的编码类型
User-Agent 用户代理,向服务器说明自己的操作系统、浏览器信息
Connection 是否开启持久连接
Host 服务器域名
主体:请求数据
响应报文:
起始:状态行
首部:
Server 服务器软件名 Apache/Nginx
Date 服务器发出响应报文的时间
Last-Modified 请求资源最后修改时间
主体:响应数据
HTTP协议版本
0.9
仅支持GET请求方式,仅能请求访问HTML
1.0
增加请求方式POST/HEAD
Content-type 支持多种数据格式
支持cache
1.1
加入持久连接keepalive
单个TCP连接可以支持多个HTTP请求
加入管道机制,单个TCP连接允许多个请求同事发送
新增请求方式PUT/PATCH/DELETE
2.0
新增双工模式,客户端和服务端能够同时发送和处理请求,解决了1.1的队头阻塞问题
以索引号代替状态行和其你去响应头的信息字段,压缩传输
服务器推送功能
网站访问量
IP IP访问量 同一公网IP只算一次
PV 网页访问量 刷新页面就算一次
UV 访客访问量 一台电脑的物理地址算一次
参考文献:https://blog.51cto.com/13570193/2108347
持续更新中…