什么是http协议:
超文本协议,定义浏览器规则由于其简捷、快速的方式,适用于分布式超媒体信息系统
特点:
基于tcp协议:面向连接安全; 基于请求响应-模型:一次请求对应一次响应
http协议是无状态的:对事物没有记忆能力。每次请求都是独立的;缺点:请求间不能共享数据,但java会话技术解决了着一问题;优点:速度快
web:全球广域网,万维网,能通过浏览器访问的网站
Javaweb:用Java技术解决web相关的计算栈
B\S架构:(browes:浏览器/service服务端):
客户端只需要浏览器,应用程序逻辑和数据都在服务端,然后客户端只需要向浏览器发送请求,获取web资源,然而服务器之需要把资源发给浏览器即可;
静态资源:html、图片等
动态资源:servlet、会话技术
http协议:负责定义通讯规则
web:负责解析http协议、解析请求数据、发送数据
1请求行: 请求数据的第一行,其中get表示请求方式/表示请求资源路径,http/1.1表示协议版本 如get/HTTP/1.
2请求头: 第二行开始,格式为key:value形式。 如:Host:www.baidu.com Conection:key-alive user-agent:monzilla/5.0 chrome/91.04442.106 *
3请求体: post请求的最后一部分,存放请求参数
常见的http请求头:
Host:表示请求主机名 或者ip
user-agent:浏览器版本
chrome/79:IE浏览器的标识符
accept:表示浏览器接收的数据类型
accept-language:表示浏览器偏好的语言服务器以此返回不同语言网
accept-encoding: 表示浏览器可以支持的压缩类型
get和post的区别: get请求请求参数在请求行中,没有请求体,post请求参数在请求体中 *get请求大小有限制,post没有 get请求数据最大不能超过2kb
常见响应头:
content-type:表示该响应内容的类型如text/html
content-length:表示内容响应的长度
content-encoding:表示响应压缩算法
cache-control:指示缓存时间
2xx开头:表示成功接收,处理完成
3xx开头:重定向到另一个地方,让客户端再发起一个请求以完成整个处理
4xx:客户端错误-客户端处理发生错误
5xx:服务器端错误-处理发生错误责任在服务端
200:客户端请求成功
302:提示所请求的资源移动到由location响应头给定的url浏览器会重新访问到这个页面 *
304:你请求的资源至上次取得后,服务端未更改,直接使用本地缓存,隐式定向
400:客户端请求语法有错,不能被服务端所理解 *
403:没有访问权限 *
404:请求资源不存在一般url有误,或者网站资源被删除
428:服务器要求有条件的请求告诉客户端想访问必须携带特定的请求头
429:太多请求可以限制客户端请求某个资源的数量,配合retry-after(多长时间可以请求)响应头一起使用
431:请求头太大,服务器不愿意处理请求,因为他的请求头部字段太大可以减少请求头区域大小重新提交
435:请求方式有误
500:服务器发生不可预期的错误,去看日志
503:服务器没有准备好请求,服务器刚刚启动好还未初始化
511:客户端需要进行身份验证才有权限访问