狂神说Java Web学习笔记_HTTP
HTTP详解
HTTP
超文本传输协议(Hyper Text Transfer Protocol,HTTP)是一个简单的请求-响应协议,它通常运行在TCP之上。
- 文本:html,字符串….
- 超文本:图片,音乐,视频,定位,地图…….
- 默认端口:80
HTTPS
HTTPS (全称:Hyper Text Transfer Protocol over SecureSocket Layer),是以安全为目标的 HTTP 通道,在HTTP的基础上通过传输加密和身份认证保证了传输过程的安全性 。HTTPS 在HTTP 的基础下加入SSL,HTTPS 的安全基础是 SSL,因此加密的详细内容就需要 SSL。
- 默认端口:443
两个时代
- http1.0
- HTTP/1.0:客户端与web服务器连接后,只能获得一个web资源。
- http2.0
- HTTP/1.1:客户端与web服务器连接后,可以获得多个web资源。
Http请求
客户端------发请求(Request)-----服务器
HTTP 请求报文由 3 大部分组成:
请求行(必须在 HTTP 请求报文的第一行)
请求头(从第二行开始,到第一个空行结束。请求头和请求体之间存在一个空行)
请求体(通常以键值对 {key:value}方式传递数据)
General
Request URL: https://www.baidu.com/ 请求地址
Request Method: GET 请求方式,一般是GET/POST
Status Code: 200 OK 状态码:200表示成功,404表示没有找到资源,500表示服务器错误
Remote Address: 36.152.44.96:443 远程地址
Referrer Policy: strict-origin-when-cross-origin
Accept: text/html
Accept-Encoding: gzip, deflate, br
Accept-Language: zh-CN,zh;q=0.9,zh-TW;q=0.8
Cache-Control: private
Connection: keep-alive
请求行(request line)
- 请求方式:GET, POST, HEAD, DELETE, PUT, TRACT
- GET: 请求能都携带的参数比较少,大小没有限制,会在浏览器的URL地址栏显示数据内容,不安全,但是高效。
- POST:请求能够携带的参数没有限制,大小没有限制,不会在浏览器URL地址栏中显示数据内容,安全,但不高效。
消息头
Accept: 告诉浏览器,它所支持的数据类型
Accept-Encoding: 支持哪种编码格式 GBK UTF-8
Accept-Language: 告诉浏览器,它的语言环境
Cache-Control: 缓存控制
Connection: 告诉浏览器,请求完成是断开还是保持连接
Http响应
服务器-----响应-----客户端
Response Headers
Cache-Control: private 缓存控制
Connection: keep-alive 连接
Content-Encoding: gzip 编码
Content-Type: text/html;charset=utf-8
HTTP请求的完全过程:https://blog.csdn.net/ailunlee/article/details/90600174
响应体
Accept:告诉浏览器,它所支持的数据类型
Accept-Encoding:支持哪种编码格式 GBK UTF-8 GB2312 ISO8859-1
Accept-Language:告诉浏览器,它的语言环境
Cache-Control:缓存控制
Connection:告诉浏览器,请求完成是断开还是保持连接
HOST:主机
Refresh:告诉客户端,多久刷新一次;
Location:让网页重新定位;
响应状态码
200:请求响应成功
3xx:请求重定向
- 重定向:你重新到我给你的位置去。
4xx:找不到资源
- 404
5xx:服务器代码错误
- 500
- 502 网关错误