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

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

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

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

(JavaWeb B/S 概述图)

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

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

Request Method 数据格式(共八种)

java 复制代码
public enum RequestMethod {
    GET, HEAD, POST, PUT, PATCH, DELETE, OPTIONS, TRACE
}

请求数据格式图:

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

Response

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

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

511 Network Authentication Required 客户端需要进行身份验证才能获得网络访问权限

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

HTTP 响应状态码 - HTTP | MDNHTTP 响应状态码用来表明特定 HTTP 请求是否成功完成。 响应被归为以下五大类:https://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 Server | Client Server |
| 依赖网络程度 | 依赖度高 | 依赖度低 |
| 程序主体部署位置 | 服务器 | 用户设备 |
| 安全验证能力 | 高 | 低 |
| 运算能力 | 低 | 高 |
| 是否方便维护更新 | 方便 | 不方便 |

使用条件 游览器 安装软件
相关推荐
城南云小白13 分钟前
Linux网络服务只iptables防火墙工具
linux·服务器·网络
羌俊恩19 分钟前
视频服务器:GB28181网络视频协议
服务器·网络·音视频
Flying_Fish_roe42 分钟前
linux-网络管理-网络配置
linux·网络·php
运维小白。。44 分钟前
Nginx 反向代理
运维·服务器·nginx·http
城南云小白2 小时前
web基础+http协议+httpd详细配置
前端·网络协议·http
hellojackjiang20112 小时前
即时通讯框架MobileIMSDK的H5端开发快速入门
网络·即时通讯·im开发
有时间要学习2 小时前
Linux——应用层自定义协议与序列化
linux·服务器·网络
Tony聊跨境3 小时前
什么是 SSL 代理?
网络·网络协议·ssl
我叫啥都行3 小时前
计算机基础知识复习9.7
运维·服务器·网络·笔记·后端
Monodye3 小时前
【Java】网络编程:TCP_IP协议详解(IP协议数据报文及如何解决IPv4不够的状况)
java·网络·数据结构·算法·系统架构