介绍
-应用层协议,由请求和响应构成。
-无状态协议,永远是客户端发起请求,服务器回送响应。
-用于从万维网服务器传输超文本到本地浏览器的传送协议。
无状态:指协议对事务处理没有记忆,如果后续处理需要前面的信息,则必须重传(导致每次连接传送的数据量增大)
无状态解决办法:
-cookie
-通过session会话保存
协议组成
请求报文:
-请求行:包含请求方法,URI,HTTP版本信息
-请求首部字段
-空行
-请求内容实体
响应报文:
-状态行:包含HTTP版本,状态码,状态码的原因短语
-响应首部字段
-空行
-响应内容实体
请求方式
-GET:用于请求访问已被URI(统一资源标识符)识别的资源
-POST:用于传输信息给服务器
-PUT:
-HEAD:
-DELETE:
-OPTIONS:
缺点
-通信使用明文不加密,内容有可能被窃听
-不验证通信方身份,可能遭伪装
-无法验证报文的完整性
GET VS POST
-GET侧重从服务器获取资源,POST侧重向服务器发送数据
-GET传输数据是通过URL请求,URL对用户可见,会泄漏私密信息
POST通过http的post机制,将字段与对应值封存在请求实体中,对用户不可见
-GET传输数量小(受URL长度限制),但是效率高
POST可传输大量数据(上传文件只能用post方式)
-GET只支持ASCII字符,向服务器传中文字符可能会乱码
POST支持标准字符集
常见状态码
-1XX:指示信息---表示请求已接收,继续处理
-2XX:成功---表示请求已被成功接收,理解,接受
-3XX:重定向---要完成请求必须进行更进一步操作
-4XX:客户端错误---请求有语法错误/请求无法实现
-5XX:服务器端错误---服务器未能实现合法请求
eg:
200:请求被正常处理
400:客户端附近有语法错误,不能被服务器识别
404:服务器无法找到对应资源(输错URL)
500:服务器内部错误
当输入www.google.com时
1.域名解析
2.tcp三次握手建立连接
3.发起http请求
4.服务器端响应http请求,浏览器得到http请求的内容
5.浏览器解析html代码,请求html代码中的资源
6.浏览器对页面进行渲染,展现给用户