Web入门-HTTP协议

ops/2024/11/15 4:54:29/

黑马程序员JavaWeb开发教程

文章目录

  • 一、概述
    • 1、概念
    • 2、特点
  • 二、请求协议
    • 1、HTTP-请求数据格式
    • 2、get请求和post请求的区别
  • 三、响应协议
    • 1、HTTP-相响应格式
    • 2、常见响应状态码
    • 3、常见的响应头

一、概述

1、概念

  • Hyper Text Transfer Protocol ,超文本传输协议,规定了浏览器和服务器之间数据传输的规则(浏览器和服务器之间数据交互的数据格式)

2、特点

  1. 基于TCP协议:面向连接,安全
  2. 基于请求-响应模型的:一次请求对应一次响应
  3. HTTP协议是无状态的协议:对于事务处理没有记忆能力。每次请求-响应都是独立的
  • 缺点:多次请求建不能共享数据
  • 优点:速度快

二、请求协议

1、HTTP-请求数据格式

  1. 请求行:请求数据第一行(请求方式、资源路径、协议)
  2. 请求头:第二行开始,格式 key:value
  • Host:请求的主机名
  • User-Agent:浏览器版本
  • Accept:表示浏览器能接受的资源类型,如text/*,image/*,或者*/*表示所有
  • Accept-Language:表示浏览器偏好的语言,服务器就可以根据次返回不同语言的网页
  • Accept-Encoding:表示浏览器可以支持的压缩类型,
  • Content-Type:请求主体的数据类型
  • Content-Length:请求主体的大小(单位:字节)
  1. 请求体:POST请求,存放请求参数

2、get请求和post请求的区别

  1. 请求方式-GET:请求参数在请求中,没有请求体,如:/brand/findAll?name=OPPO&status=1。GET请求大小是有限制的
  2. 请求方式-POST:请求参数在请求体中,POST请求大小是没有限制的

三、响应协议

1、HTTP-相响应格式

  1. 响应行:相应数据第一行(协议、状态码、描述)
  2. 响应头:第二行开始,格式 key:value
  3. 响应体:最后一部分,存放响应数据

2、常见响应状态码

  1. 1xx:响应中-临时状态码,表示请求已经接受,告诉客户端应该继续请求或者如果它已经完成则忽略它
  2. 2xx:成功-表示请求已经被成功接受,处理已经完成
    • 200 ok 客户端请求成功,即处理成功,这是我们最想看到的状态码
  3. 3xx:重定向-重定向到其他地方;让客户端再发起一次请求以完成整个 处理
  4. 4xx:客户端错误-处理发生错误,责任在客户端。如:请求了不存在的资源,客户端未被授权、禁止访问等
    • 404 Not Found 请求资源不存在,一般是URL输入有误,或者网站资源被删除了
  5. 5xx:服务器错误-处理发生错误,责任在服务端。如:程序抛出异常等
    • 500 “Internal Server Error” 服务器发生不可预期的错误,服务器出异常了
  6. 状态码大全:https://cloud.tencent.com/developer/chapter/13553

3、常见的响应头

  1. content-Type:表示相应内容的类型
  2. Content-Length:表示相应内容的长度
  3. Content-Encoding:表示响应压缩算法
  4. Cache-Control:指示客户端应如何缓存,例如max-age=300,表示最多缓存300秒
  5. Set-Cookie:高速浏览器为当前页面所在的域设置Cookie

http://www.ppmy.cn/ops/8511.html

相关文章

java,实现回形数输出

键盘输入一个整数n,以n为矩阵大小,按顺时针螺旋的形式输出每个数(1、2、3…n*n) 比如输入3,则输出为 1 2 3 8 9 4 7 6 5 比如输入4,则输出为 1 2 3   4 12 13 14 5 11 16 15 6 10 9 8 7 思路…

批量插入10w数据方法对比

环境准备(mysql5.7) CREATE TABLE user (id bigint(20) NOT NULL AUTO_INCREMENT COMMENT 唯一id,user_id bigint(10) DEFAULT NULL COMMENT 用户id-uuid,user_name varchar(100) NOT NULL COMMENT 用户名,user_age bigint(10) DEFAULT NULL COMMENT 用户年龄,create_time time…

深入理解JavaScript - Proxy模拟vue的代理

视频链接 ⚠️视频里使用proxy的代码不能用!!! (1)简单使用 const obj {a: 1,b: 2,c: {a: 1,b: 2,}, }; let v obj.a; Object.defineProperty(obj, "a", {get() {console.log("读取", a);},se…

JavaScript 实现大数简化,带单位显示

一、场景 在前端展示的数据时,如果数据数值太大,会导致展示的数据非常长,不仅用户不能迅速读出数值大小而且影响美观,此时我们需要将这种大数简化为带单位的数值,如 250000 转为 25.0万。 二、实现函数 // 大数简化函…

UBUNTU新版本,一键安装NETCDF,安装netcdf-c netcdf-v

UBUNTU新版本,一键安装NETCDF,安装netcdf-c netcdf-v_ubuntu安装netcdf-CSDN博客 UBUNTU新版本,一键安装NETCDF,安装netcdf-c netcdf-v 参考连接傻瓜式安装netcdf-fortran库 1)保存bash代码,文件名为netc…

【PHP快速上手(十四)】

目录 PHP快速上手(十四)PHP 中常用数据库操作使用 WHERE 子句进行条件查询使用 ORDER BY 子句进行排序使用 UPDATE 语句更新数据使用 DELETE 语句删除数据执行事务总结 PHP快速上手(十四) PHP 中常用数据库操作 当使用 PHP 中的…

非计算机专业考软考高项有必要吗?

我认为这非常重要。 看了你的介绍,如果你已经考取了会计证书,而且想要考取计算机专业的证书,或者你的职业规划涉及到计算机岗位,又或者你对计算机感兴趣,我建议你优先考虑软考,因为这个证书的含金量是有保…

Linux gettid()系统调用源码分析

1、gettid()系统调用作用 gettid() 是一个Linux系统调用&#xff0c;用于获取当前进程的线程ID。在使用此系统调用时&#xff0c;你需要包含 <sys/syscall.h> 头文件&#xff0c;并且可以通过直接调用或使用 syscall() 函数来进行系统调用。 注意&#xff1a;ps 中显示的…