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文档中对生命周期回调的函数描述的很详细,这里我只是翻译 ...
随机推荐
- 服务器Go程序意外停止自动重启
判断进程是否挂掉 ps -ef | grep ./blog |wc -l 如果输出为1,说明进程挂掉了 如果输出为2,说明进程正常运行 编辑脚本来检测和完成重启 vim restart.sh 逻辑代码 ...
- WPS EXCEL 根据录入的详细地址自动提取用户的籍贯信息
=TRIM(IFERROR(LEFT(J18,FIND("省",J18)+LEN("省")-1),"") & " &quo ...
- 关于Primavera P6版本选择上的一些看法
从开始接触P6到目前也有近6年的时间,从最开始用的V7 (除P6.2.1)到现在用的18.8.0 ,除去一些小版本,中间自己跨越了8个不同版本 7.0, (2013) 8.2 ...
- 探秘Transformer系列之(16)--- 资源占用
探秘Transformer系列之(16)--- 资源占用 目录 探秘Transformer系列之(16)--- 资源占用 文章总表 0x00 概述 0x01 背景知识 1.1 数据类型 1.2 进制& ...
- 【Java】常用类
一.String类 java.lang.String类的使用 注意:String可以String s = "";,是因为String类型在后面自动补充了'\0' char初始化不能 ...
- 【Linux】5.3 Shell字符串
Shell 字符串 字符串是shell编程中最常用最有用的数据类型(除了数字和字符串,也没啥其它类型好用了),字符串可以用单引号,也可以用双引号,也可以不用引号.单双引号的区别跟PHP类似. 1. 单 ...
- Docker部署RocketMQ(JDK11)
说起微服务,不谈容器,不谈云,那还谈个啥?容器中又以Docker最为流行,那么我们今天就来实践下容器化微服务,然后顺带解决下各种疑难杂症. 环境: Idea2019.03/Gradle6.0.1/JD ...
- Spring AI与DeepSeek实战三:打造企业知识库
一.概述 企业应用集成大语言模型(LLM)落地的两大痛点: 知识局限性:LLM依赖静态训练数据,无法覆盖实时更新或垂直领域的知识: 幻觉:当LLM遇到训练数据外的提问时,可能生成看似合理但错误的内容. ...
- PandasAI:当数据分析遇上自然语言处理
数据科学的新范式 在数据爆炸的时代,传统的数据分析工具正面临着前所未有的挑战.数据科学家们常常需要花费70%的时间在数据清洗和探索上,而真正的价值创造时间却被大幅压缩.PandasAI的出现,正在改变 ...
- springboot+mongodb+jpa使用save()方法保存数据后id为0
最近做mongodb版本升级,springboot版本从1.4.0.RELEASE升级到1.5.10.RELEASE后出现jpa使用save()方法保存数据后id为0的问题. 解决: 以下为原代码,使 ...