JavaWeb 中的 HTTP 基础知识
概念:超文本传输协议,规定了浏览器和服务器之间数据传输的规则。
特点:
- 基于TCP协议,面向连接,更安全
- 基于请求-响应模型,一次请求对应一次响应
- 是无状态的协议,对事务处理没有记忆能力。每次请求-响应都是独立的。
HTTP请求数据格式
- HTTP请求数据分为三部分:
- 请求行:请求数据的第一行,类型为:请求方式 /请求资源路径 HTTP/1.1(协议版本)
- 请求头:第二行开始,以键值对的形式
- 请求体:POST请求方式特有的,在请求的最后一部分,用于存放请求参数
- 常见的几种HTTP请求头:
- HOST:表示请求的主机名
- User-Agent:表示浏览器版本
- Accept:表示浏览器接收的资源类型,如text/*
- Accept-Language:表示浏览器偏好的语言
- Accept-Encoding:表示浏览器支持的压缩类型
- GET请求和POST请求区别:
- get请求请求参数在请求行中,没有请求体;post请求请求参数在请求体中
- get请求请求参数有大小限制,post请求没有
HTTP响应数据格式
- HTTP响应数据同样分为三部分:
- 响应行:格式为:响应版本 响应状态码 响应状态码描述
- 响应头:第二行开始,以键值对的形式
- 响应体:最后一部分,存放响应数据
- 常见的HTTP响应头
- Content-Type:表示该响应内容的类型
- Content-Length:响应内容的长度
- Cache-Control:表示客户端应如何缓存
- 状态码大类
- 1XX:临时状态码,表示请求已接受,告诉客户端继续请求或者如果它已经完成就忽略它。
- 2XX:成功,表示请求已被成功接收,处理已完成。
- 3XX:重定向,客户端请求的资源已经被移到其他地方,它让客户端再发起一个请求以完成整个处理。
- 4XX:客户端错误,处理发生错误,责任在客户端。如:请求不存在的资源,客户端未被授权,禁止访问等。此时应该看是不是客户端请求路径有问题。
- 5XX:服务端错误,处理发生错误,责任在服务端。如:服务端抛出异常,路由出错,HTTP版本不支持。这种情况,一般是要检查自己的代码是不是出了错误。
- 常见响应状态码
- 200 OK 客户端请求成功,即处理成功。
- 302 Found 资源移动到了location所指向的url,浏览器会自动重新访问这个页面。
- 404 Not Found 请求资源不存在,如url不存在、网站资源被删除等
- 500 Internal Server Error 服务器发生了不可预期的错误,应该查看日志
JavaWeb 中的 HTTP 基础知识的更多相关文章
- ASP.NET中的C#基础知识
ASP.NET中的C#基础知识 说明:asp.net作为一种开发框架现在已经广为应用,其开发的基础除了前端的html.css.JavaScript等后端最重要的语言支持还是C#,下面将主要用到的基础知 ...
- MySQL中索引的基础知识
本文是关于MySQL中索引的基础知识.主要讲了索引的意义与原理.创建与删除的操作.并未涉及到索引的数据结构.高性能策略等. 一.概述 1.索引的意义:用于提高数据库检索数据的效率,提高数据库性能. 数 ...
- day29—JavaScript中DOM的基础知识应用
转行学开发,代码100天——2018-04-14 JavaScript中DOM操作基础知识即对DOM元素进行增删改操作.主要表现与HTML元素的操作,以及对CSS样式的操作.其主要应用知识如下图: 通 ...
- 走进JavaWeb技术世界1:JavaWeb的由来和基础知识
本系列文章将整理到我在GitHub上的<Java面试指南>仓库,更多精彩内容请到我的仓库里查看 https://github.com/h2pl/Java-Tutorial 喜欢的话麻烦点下 ...
- JAVAWeb入门之JSP基础知识
也是到了考试周,很多课都结了,准备去学点新东西.随后就开始自学JAVAWeb. 要学习JAVAWeb,首先需下面的知识: a) HTML/CSS/JS(前端页面),XML,JSON,vue ...
- javascript中BOM部分基础知识总结
一.什么是BOM BOM(Browser Object Document)即浏览器对象模型. BOM提供了独立于内容 而与浏览器窗口进行交互的对象: 由于BOM主要用于管 ...
- Jquery源码中的Javascript基础知识(三)
这篇主要说一下在源码中jquery对象是怎样设计实现的,下面是相关代码的简化版本: (function( window, undefined ) { // code 定义变量 jQuery = fun ...
- Java中浮点数的基础知识
偶然查看Math.round的JDK public static int round(float a) { if (a != 0x1.fffffep-2f) // greatest float val ...
- Android中的一些基础知识(三)
最近在回顾Android的基础知识,就把一些常见的知识点整理一下,以后忘了也可以翻出来看一看. 在TextView中显示图像(使用< img>标签) 在TextView中显示图片的方法有许 ...
- Android中的一些基础知识(二)
这几天在回顾Android的基础知识,就把一些常见的知识点整理一下,以后忘了也可以翻出来看一看. 简单介绍一下Activity的生命周期 在API文档中对生命周期回调的函数描述的很详细,这里我只是翻译 ...
随机推荐
- PaddleOCR学习笔记2-初步识别服务
今天初步实现了网页,上传图片,识别显示结果到页面的服务.后续再完善. 采用flask + paddleocr+ bootstrap快速搭建OCR识别服务. 代码结构如下: 模板页面代码文件如下: up ...
- DELPHI 检测服务器地址是否有效
利用DELPH 的ICMP控件检测服务器地址 function CheckNetServer():Boolean; begin IdIcmpClient1.Host := '192.168.1.230 ...
- 环境配置-Git和GitLab
Git安装 到官网下载安装包,直接一路next即可. https://git-scm.com/download/win 配置用户名和用户邮箱 $ git config --global user.na ...
- 面试题-MySQL和Redis(更新版)
前言 MySQL和Redis部分的题目,是我根据Java Guide的面试突击版本V3.0再整理出来的,其中,我选择了一些比较重要的问题,并重新做出相应回答,并添加了一些比较重要的问题,希望对大家起到 ...
- 自定义异常--java进阶day08
1.自定义异常 2.自定义异常的格式 看你想要定义哪种异常,对应的继承哪种异常类 以我们之前写的代码举例,Exception类过于庞大,所有的异常子类都可以被它接收,这样就会导致无法精确捕获,所以我们 ...
- 构建窗体--java进阶day03
1.窗体对象Jframe 要创建窗体就需要Jframe对象,窗体创建好不会自己显示,还需要我们自己写一段代码让其显示 2.设置窗体可见--setVisible(true) 该方法用于显示窗体 3.窗体 ...
- 什么是 MCP,以及你为什么该关注它
MCP 现在真的火起来了.现在已经有成千上万个 MCP "服务器",而且虽然是 Anthropic 发明的,就在几天前 OpenAI 也采纳了它.服务器就像 AI 的 " ...
- FREERTOS指令测试的思考
采用freertos编程后,有必要增加指令测试的功能: 1.便于对于软件各个子模块或功能点进行测试. 2.便于对硬件各个功能点是否正常进行测试. 在裸机编程中,我们一般使用串口进行运行数据的打 ...
- Codeforces Round 1016 (Div. 3)题解
题目地址 https://codeforces.com/contest/2093 锐评 在所有题意都理解正确的情况下,整体难度不算太难.但是偏偏存在F这么恶心的题意,样例都不带解释一下的,根本看不懂题 ...
- Docker安装及使用,Docker 安装MySQL、安装Tomcat、安装RabbitMQ
CentOS7安装Docker Docker从1.13版本之后采用时间线的方式作为版本号,分为社区版CE和企业版EE. 社区版是免费提供给个人开发者和小型团体使用的,企业版会提供额外的收费服务,比如经 ...