当前位置: 首页 > news >正文

Web 第一步:HTTP 协议(基础)

这里是JavaWeb的开头部分!那么先解释一下吧:

Web:全球广域网,也称为万维网(www),能够通过浏览器访问的网站。

JavaWeb:是用Java技术来解决相关 Web 互联网领域的技术栈。

(JavaWeb B/S 概述图)

HTTP 协议(客户端与服务器交互的一种通讯方式)

所谓交互就是“请求”和“响应”。而“协议”就是双方约定好的格式罢了,让他们能沟通的东西。

Request Method 数据格式(共八种)


public enum RequestMethod {GET, HEAD, POST, PUT, PATCH, DELETE, OPTIONS, TRACE
}

请求数据格式图:

(可见在 post 请求里 get 和 post 之间有个换行隔开,而 get 的请求参数大小限制在 4KB 以内)

Response

网页响应状态码(Status Code)的部分介绍:

状态码英文描述解释
200OK客户端请求成功,即处理成功,这是我们最想看到的状态码
302Found指示所请求的资源已移动到由Location响应头给定的URL,浏览器会自动重新访问到这个页面
304Not Modified告诉客户端,你请求的资源至上次取得后,服务端并未更改,你直接用你本地缓存吧。隐式重定向
400Bad Request客户端请求有语法错误,不能被服务器所理解
403Forbidden服务器收到请求,但是拒绝提供服务,比如:没有权限访问相关资源
404Not Found请求资源不存在,一般是URL输入有误,或者网站资源被删除了
428Precondition Required服务器要求有条件的请求,告诉客户端要想访问该资源,必须携带特定的请求头
429Too Many Requests太多请求,可以限制客户端请求某个资源的数量,配合Retry-After(多长时间后可以请求)响应头一起使用
431Request Header Fields Too Large请求头太大,服务器不愿意处理请求,因为它的头部字段太大。请求可以在减少请求头域的大小后重新提交。
405Method Not Allowed请求方式有误,比如应该用GET请求方式的资源,用了POST
500Internal Server Error服务器发生不可预期的错误。服务器出异常了,赶紧看日志去吧
503Service Unavailable服务器尚未准备好处理请求,服务器刚刚启动,还未初始化好
511Network Authentication Required客户端需要进行身份验证才能获得网络访问权限

更多信息,可以看这个网址:

HTTP 响应状态码 - HTTP | MDNHTTP 响应状态码用来表明特定 HTTP 请求是否成功完成。 响应被归为以下五大类:icon-default.png?t=N7T8https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Status#%E6%9C%8D%E5%8A%A1%E7%AB%AF%E9%94%99%E8%AF%AF%E5%93%8D%E5%BA%94总结:Tomcat 帮我们封装了原始的 HTTP 代码,让我们更加专注于业务代码开发!

小小扩展:

动态网页静态网页
因时间、地点、用户等外界因素变化而改变自有其内在的执行逻辑,不受外界因素的影响

BS和CS架构

Broswer ServerClient Server
依赖网络程度依赖度高依赖度低
程序主体部署位置服务器用户设备
安全验证能力
运算能力
是否方便维护更新方便不方便
使用条件游览器安装软件

http://www.lryc.cn/news/169134.html

相关文章:

  • 【Vue】快速入门案例与工作流程的讲解
  • LuatOS-SOC接口文档(air780E)--camera - codec - 多媒体-编解码
  • 《动手学深度学习 Pytorch版》 6.6 卷积神经网络
  • 【微信小程序】项目初始化
  • C#,《小白学程序》第二十六课:大数乘法(BigInteger Multiply)的Toom-Cook 3算法及源程序
  • destoon自定义一个archiver内容文档
  • 5-1 Dataset和DataLoader
  • IDEA创建完Maven工程后,右下角一直显示正在下载Maven插件
  • 最新清理删除Mac电脑内存空间方法教程
  • 【调试经验】MySQL - fatal error: mysql/mysql.h: 没有那个文件或目录
  • 腾讯mini项目-【指标监控服务重构】2023-08-12
  • kubeadm部署k8sv1.24使用cri-docker做为CRI
  • 在c#中使用CancellationToken取消任务
  • 【项目经验】:elementui多选表格默认选中
  • 外星人入侵游戏-(创新版)
  • HTML 学习笔记(基础)
  • 最小二乘法
  • 使用stelnet进行安全的远程管理
  • python 二手车数据分析以及价格预测
  • JAVA医药进销存管理系统(附源码+调试)
  • H5 <blockquote> 标签
  • nginx配置指南
  • 【数据结构】优先级队列(堆)
  • 前端笔试2
  • LeetCode:66.加一
  • Redis 常用命令
  • Integer.valueOf()用于字符和字符串的区别
  • 机械寿命预测(基于NASA C-MAPSS数据的剩余使用寿命RUL预测,Python代码,CNN_LSTM模型,有详细中文注释)
  • ConfigMaps-1
  • docker上安装es