一、http协议
1、什么是协议?
-
通信的双方的一种约束
2、什么是http协议?(超文本传输协议)
-
它是一种互联网请求和响应的协议。请求和响应要成对出现,有请求一定要有响应。用来规定浏览器和服务器 之间需要遵守的规则,它规范浏览器和服务器之间的数据传递.
3、Http协议的特点:
1)基于请求和响应的模型
2)必须先有请求,后有响应
3)请求和响应必须成对出现
4)默认的端口号是80
5)是无状态的协议
3.1、两个时代
-
http1.0:
-
HTTP/1.0:客户端可以与Web服务器连接后,只能获得一个web资源,断开连接
-
-
http2.0:
-
HTTP/1.1:客户端可以与Web服务器连接后,可以获得多个Web资源
-
4、Http请求
-
客户端---发请求(Request)----服务器
百度:
Request URL: https://www.baidu.com/
Request Method: GET
Status Code: 200 OK
Remote Address: 110.242.68.3:443
请求 URL: http://www.baidu.com/
请求方法: GET
状态代码: 200 OK
远程地址: 110.242.68.3:80
Accept: text/html
Accept-Encoding: gzip, deflate, br
Accept-Language: zh-CN,zh;q=0.9
Connection: keep-alive
1、请求行
-
请求行中的请求方式:GET
-
请求方式:Get,Post,
-
get:请求能够携带参数比较少,大小限制,会在浏览器的URL地址栏显示数据,不安全,但是高效
-
Post:请求能够携带参数无限制,大小无限制,会在浏览器的URL地址栏不会显示数据,安全,但是不高效
-
2、请求头
Accept: 告诉浏览器,它所支持的数据类型
Accept-Encoding: 支持那种编码格式 GBK UTF-8 ....
Accept-Language: 告诉浏览器,它的语言环境
Connection: 告诉浏览器,请求完成是断开还是连接
HOST:主机
5、Http响应
-
服务器---响应---客户端
Accept: 告诉浏览器,它所支持的数据类型
Accept-Encoding: 支持那种编码格式 GBK UTF-8 ....
Accept-Language: 告诉浏览器,它的语言环境
Connection: 告诉浏览器,请求完成是断开还是连接
HOST:主机
百度:
Connection: keep-alive 连接:保持活着
Content-Encoding: gzip 编码
Content-Type: text/html; charset=utf-8 类型
1、响应体
Accept: 告诉浏览器,它所支持的数据类型
Accept-Encoding: 支持那种编码格式 GBK UTF-8 ....
Accept-Language: 告诉浏览器,它的语言环境
Connection: 告诉浏览器,请求完成是断开还是连接
HOST:主机
Refresh:告诉客户端,多久刷新一次;
Location:让网页重新定位
2、响应状态码
200:请求响应成功 200
3XX:请求重定义
-
重定义:你重新到我给你新位置去;
4XX:找不到资源 404
-
资源不存在
5XX:服务器代码错误 500 -----502:网关错误
常见面试题:
当你的浏览器中地址栏输入并回车的一瞬间到页面能够展示回来,经历了什么?
-
作为客户端,浏览器接收到地址之后,首先会到windows系统文件hosts中查找是否有需要劫持的ip地址,若没有则需要询问DNS域名解析服务器该域名对应的ip地址。(DNS缓存) 浏览器缓存,系统缓存,路由器缓存,IPS服务器缓存,根域名服务器缓存,顶级域名服务器缓存,主域名服务器缓存