javaWeb学习笔记之关于http
1、什么是http
http是一种超文本传输协议,是一个简单的请求--响应协议,通常运行在TCP之上
- 文本:html,字符串等
- 超文本:图片、音乐、视频、定位、地图等
- 端口:主要是80
https:是安全的,区别于http,端口是443
http经历了两个时代:
-
http1.0:
http/1.0:客户端可以与web服务器连接后,只能获得一个web资源,断开连接
-
http2.0:
http/1.1:客户端可以与web服务器连接后,可以获得多个web资源
2、http请求
- 客户端--发请求(request)--服务器
例子:
Request URL:https://www.baidu.com/ 请求地址
Request Method:GET get方法/post方法
Status Code:200 OK 状态码:200
Remote(远程) Address:14.215.177.39:443
Accept:text/html //接受类型
Accept-Encoding:gzip, deflate, //接受编码
Accept-Language:zh-CN,zh;q=0.9 //语言
Cache-Control:max-age=0 //缓存控制
Connection:keep-alive //连接状态,是否保持连接
2.1、请求行
- 请求行中的请求方式:Get
- 请求方式:Get、Post、DELETE、PUT、HEAD等
- get请求可以携带的参数比较少,且大小有限制,会在浏览器的URL路径中显示数据内容,不安全,但是高效
- post请求对携带的参数没有限制,大小也没有限制,不会在浏览器的URL路径中显示数据内容,安全,但是不搞笑
2.3、消息头
Accept:告诉浏览器,它所支持的数据类型
Accept-Encoding:支持哪种编码格式 GBK UTF-8 GB2312 ISO8859-1
Accept-Language:告诉浏览器,它的语言环境
Cache-Control:缓存控制
Connection:告诉浏览器,请求完成是断开还是保持连接
HOST:主机..../.
3、http响应
服务端--响应--客户端
Cache-Control:private 缓存控制
Connection:Keep-Alive 连接
Content-Encoding:gzip 编码
Content-Type:text/html 类型
3.1、响应体
Accept:告诉浏览器,它所支持的数据类型
Accept-Encoding:支持哪种编码格式 GBK UTF-8 GB2312 ISO8859-1
Accept-Language:告诉浏览器,它的语言环境
Cache-Control:缓存控制 Connection:
告诉浏览器,请求完成是断开还是保持连接
HOST:主机..../. Refresh:告诉客户端,多久刷新一次;
Location:让网页重新定位;
3.2、响应状态码
200:请求响应成功
3XX:请求重定向
- 重定向:链接到新的地址
4XX:找不到资源 404
5XX:服务器代码错误 500服务器异常 502网关错误
4、考点
-
当你的浏览器输入地址栏并请求的一瞬间到页面展示回来,经历了什么?
- 我的理解:回车后客户端携带请求信息向服务器发送请求,服务端拿到请求信息去找资源后,将资源携带响应信息一起返回给客户端,客户端在进行也页面的渲染
-
正确:
- http请求阶段:
- 浏览器首先向DNS域名解析服务器发送请求(浏览器不能识别url地址,需要解析成IP地址)
- DNS反解析,根据浏览器请求地址中的域名,到DNS服务器找到对应的服务器外网IP地址
- 通过外网IP向对应的服务器发送请求
- tcp连接,三次握手
- 服务器收到请求,返回响应头和响应体
- 页面渲染
以上就是关于http学习的相关笔记,最近又开始复习javaWeb,发现自己的基础并不扎实,于是又开始一边看B站up主狂神的视频一边记录笔记,每天记录一点每天进步一点。
- http请求阶段: