HTTP
什么是HTTP?
http: 文本传输协议(Hyper Text Transfer Protocol,HTTP)是一个简单的请求-响应协议,它通常运行在TCP之上。
它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应。请求和响应消息的头以ASCII形式给出;而消息内容则具有一个类似MIME的格式。这个简单模型是早期Web成功的有功之臣,因为它使开发和部署非常地直截了当。
- 文本:HTML、字符串…
- 超文本:图片、音乐、视频、定位、地图…
- 80
https: HTTPS (全称:Hyper Text Transfer Protocol over SecureSocket Layer),是以安全为目标的 HTTP 通道,在HTTP的基础上通过传输加密和身份认证保证了传输过程的安全性。HTTPS 在HTTP 的基础下加入SSL,HTTPS 的安全基础是 SSL,因此加密的详细内容就需要 SSL。 HTTPS 存在不同于 HTTP 的默认端口及一个加密/身份验证层(在 HTTP与 TCP 之间)。这个系统提供了身份验证与加密通讯方法。它被广泛用于万维网上安全敏感的通讯,例如交易支付等方面。
HTTP的两个时代
- http1.0
- HTTP/1.0:客户端可以与web服务器连接之后,只能获得一个web资源,随即断开连接
- http2.0
- HTTP/1.1:客户端可以与web服务器连接之后,可以获得多个web资源
HTTP请求
客户端—>发送请求(request)—>服务器
以百度为例,当我们访问百度首页的时候,可以通过监测来获取网站的一些信息:
Request URL: https://www.baidu.com/(请求地址) Request Method: GET(GET/POST方法) Status Code: 200 OK(状态码) Remote Address: 14.215.177.38:443(远程IP地址)
Accept:text/html Accept-Encoding: gzip, deflate, br Accept-Language: zh-CN,zh;q=0.9(语言) Cache-Control: max-age=0 Connection: keep-alive
请求行
- 请求行中的请求方式:GET
- 请求方式:GET和POST的区别
- get:请求能够携带的参数比较少,大小有限制,会在浏览器的URL地址栏内显示具体内容,不安全,但高效
- post:请求能够携带的参数无限制,大小无限制,不会在浏览器的URL地址栏内显示具体内容,安全,但不高效
消息头
Accept:浏览器所支持的数据类型 Accept-Encoding:支持的编码格式 Accept-Language:浏览器的语言环境 Cache-Control:缓冲控制 Connection:决定浏览器的请求是断开还是保持连接 HOSt:主机
HTTP响应
服务器—>响应—>客户端
还是拿百度作为例子:
Cache-Control: private 缓存控制 Content-Encoding: gzip 编码 Content-Type: text/html 类型 Connection:Keep-Alive 连接
响应体
Accept:浏览器所支持的数据类型 Accept-Encoding:支持的编码格式 Accept-Language:浏览器的语言环境 Cache-Control:缓冲控制 Connection:决定浏览器的请求是断开还是保持连接 HOSt:主机 Refresh:浏览器的刷新时间 Location:令网页重新定位
状态响应码
200:请求响应成功
3xx:资源重新定向
4xx:找不到资源(504)
5xx:服务器代码错误(502:网关错误)
|