简介
- HTTP: hyper test transfer protocol(超文本传输协议);
- 属于应用层面向对象的协议;

http协议特性
- http协议是基于TCP/IP协议之上的应用层协议;
- 请求 - 响应模式:先请求才会有响应;
- 无状态保存:每次请求响应都是独立的;
- 短连接:
- HTTP1.0默认使用的是短连接。浏览器和服务器每进行一次HTTP操作,就建立一次连接,任务结束就中断连接。
- HTTP/1.1起,默认使用长连接。要使用长连接,客户端和服务器的HTTP首部的Connection都要设置为keep-alive,才能支持长连接。
- HTTP长连接,指的是复用TCP连接,多个HTTP请求可以复用同一个TCP连接,这就节省了TCP连接建立和断开的消耗。
http请求协议和响应协议
- socket,TCP/IP
- 可以简单地把 Socket 想象成一个插座,而 TCP/IP 协议族就像是电线和电力传输系统。插座(Socket)是你可以直接插入电器(应用程序)并使用电力(进行网络通信)的接口,而电线和电力传输系统(TCP/IP 协议族)则是负责将电力(数据)从发电厂(网络中的另一端)传输到插座的过程。

- HTTP 请求协议:是一个字符串;由请求首行 + 请求头 + 空行 + 请求体组成
- 请求首行:包含请求方式(POST/GET),请求路径 + 查询参数,请求协议,共3个部分;(POST也能有查询参数)
- 请求头:若干个,每个单独一行,可自定义;
- content-type:application/json 或者 content-type:application/x-www-form-urlencoded
- user-agent:Chrome…
- 空行:请求体和请求头之前必须有一个空行;
- 请求体:POST请求才有请求体
- {username:“yuan”, password:“123”}

- HTTP 响应协议:响应首行 + 响应头 + 空行 + 响应体
- 响应首行:协议 + 状态码和它的解释
- 响应头
- content-type:application/json
- content-length:73
- 空行
- 响应体
- {”code“:-1, “msg”:“效验错误”}
- 状态码:
- 2开头:成功
- 3开头:重定向
- 4开头:服务器问题
- 5开头:客户端问题