HTTP 协议详解

简介: HTTP 协议详解

文章目录

200 OK

404 Not Found

403 Forbidden

405 Method Not Allowed

500 Internal Server Error

302 Move temporarily

301 Moved Permanently

Content-Type


1. HTTP协议介绍

Http协议是一个TCP协议,采用BS模型,用来传输数据(查询结果等)超文本传输协议,从服务器传输超文本到本地浏览器的传送协议,HTTP 是一种应用层协议,是基于 TCP/IP 通信协议来传递数据的。

特点:快速简单:客户服务器发送请求,只需要传送请求的方法和路径。请求方法有Get、Post等

协议:使数据在网络上从源头到达目的,网络通信的参与方必须遵循相同的规则,这套规则称为协议,它最终体现为在网络上传输的数据包的格式(通俗讲,协议就是要保证网络通信的双方,能够互相对接上号。就像是两个人传递纸条通过互相指定的暗号,如果发送天亮了,表示可以打游戏了等)


2. HTTP协议工作过程

4edc953e2c684bbe819ffa954c899c08.png

4. HTTP协议格式总览

4edc953e2c684bbe819ffa954c899c08.png


5. HTTP 请求(Request)

5.1 “方法” Method

GET 方法

GET

请求指定的页面信息,并返回实体

常用于获取服务器上的某个资源

(在浏览器中直接输入 URL 回车或点击浏览器收藏夹中的链接,此时浏览器就会发送出一个 GET 请求)

特点:

GET 请求的 body 一般是空的

POST 方法

POST:

用于提交用户输入的数据给服务器(如登录页面)

POST 请求的 header 里面有若干个键值对

POST一般把数据放到Body中

GET和POST区别

GET 用于从服务器获取数据,POST 客户端给服务器提交数据

GET 请求可以被缓存,可以被浏览器保存到收藏夹中;POST 请求不能被缓存

GET只能传输文本数据,也可以传输二进制数据,只不过针对二进制数据进行 urlencode,转码后 就可以放到 url 中

POST 可以传输文本数据,也可以传输二进制数据

扩充(其他方法)


6. HTTP 响应(Response)

6.1 认识 “状态码”(status code)

200 OK

200 OK(表示访问成功)

404 Not Found

表示没有找到资源(发送请求的URL在服务器中未找到)

403 Forbidden

表示访问被拒绝(有的页面需要用户有一点的权限才可以进行访问)

405 Method Not Allowed

表示访问的服务器不能支持请求中的方法或者不能使用该请求中的方法(请求的方法不支持)

500 Internal Server Error

表示服务器出现内部错误(一般是服务器的代码执行过程中遇到了一些特殊的情况,造成服务器崩溃可能会产生这个状态码 ,检查一下自己的代码)

302 Move temporarily

表示临时重定向

301 Moved Permanently

表示永久重定向,当浏览器收到这种响应时,后续的请求都会被自动改成新的地址

6.2 认识 响应"报头"(Header)

响应报头的基本格式和请求报头的格式基本一致,下面介绍下响应报头的 Content-Type 参数

text/html

表示数据格式是 HTML

text/css

表示数据格式是 CSS

application/javascript

表示数据各式是 JavaScript

application/json

表示数据格式是 JSON

Action:HTTP 请求的 URL

Method:HTTP 请求的方法(GET 或 POST 方法)

Content-Type

HOST 的值表示服务器主机的地址和端口

Content-Length 表示body的数据长度,长度单位是字节

Content-Type 表示body的数据格式

三种请求数据格式

application/x-www-form-urlencoded

这是 form 表单提交的数据格式,此时 body 的格式就类似于 query string(是键值对的结构,键值对之间使用 & 分割,键与值之间使用 = 分割

multipart/form-data

这是 form 表单提交的数据格式(需要在 from 标签上加上

enctyped=“multipart/form-data”),通常用于 HTML 提交图片或者文件

Application/Json

body 数据为 json 格式,用一个 { } 括住里面有多个键值对,键值对之间使用逗号分割,键和值之间使用冒号分割


7. 通过form 表单构造 HTTP 请求

7.1 发送 GET 请求4edc953e2c684bbe819ffa954c899c08.png

7.2 发送 POST 请求

4edc953e2c684bbe819ffa954c899c08.png

4edc953e2c684bbe819ffa954c899c08.png

4edc953e2c684bbe819ffa954c899c08.png


目录
相关文章
|
2月前
|
缓存 应用服务中间件 网络安全
Nginx中配置HTTP2协议的方法
Nginx中配置HTTP2协议的方法
130 7
|
14天前
|
域名解析 缓存 网络协议
Web基础与HTTP协议
通过掌握这些基础知识和技术,开发者可以更加高效地构建和优化Web应用,提供更好的用户体验和系统性能。
64 15
|
10天前
|
前端开发 网络协议 安全
【网络原理】——HTTP协议、fiddler抓包
HTTP超文本传输,HTML,fiddler抓包,URL,urlencode,HTTP首行方法,GET方法,POST方法
|
12天前
|
缓存 网络协议 算法
从零开始掌握HTTP协议
本文介绍HTTP协议的演变,从HTTP1.0到HTTP2.0。HTTP1.0为无状态连接,每次请求独立;HTTP1.1引入持久连接、管道化请求和更多状态码;HTTP2.0采用二进制分帧、多路复用、头部压缩及服务器主动推送,大幅提升性能与用户体验。了解这些区别有助于开发者优化应用和服务。
|
2月前
|
开发者
HTTP 协议请求方法的发展历程
【10月更文挑战第21天】
|
2月前
|
Dubbo 安全 应用服务中间件
Apache Dubbo 正式发布 HTTP/3 版本 RPC 协议,弱网效率提升 6 倍
在 Apache Dubbo 3.3.0 版本之后,官方推出了全新升级的 Triple X 协议,全面支持 HTTP/1、HTTP/2 和 HTTP/3 协议。本文将围绕 Triple 协议对 HTTP/3 的支持进行详细阐述,包括其设计目标、实际应用案例、性能测试结果以及源码架构分析等内容。
|
2月前
|
算法 网络协议 安全
HTTP/2 协议的缺点是什么?
HTTP/2 协议的缺点是什么?
105 13
|
2月前
|
网络协议 网络安全 网络虚拟化
本文介绍了十个重要的网络技术术语,包括IP地址、子网掩码、域名系统(DNS)、防火墙、虚拟专用网络(VPN)、路由器、交换机、超文本传输协议(HTTP)、传输控制协议/网际协议(TCP/IP)和云计算
本文介绍了十个重要的网络技术术语,包括IP地址、子网掩码、域名系统(DNS)、防火墙、虚拟专用网络(VPN)、路由器、交换机、超文本传输协议(HTTP)、传输控制协议/网际协议(TCP/IP)和云计算。通过这些术语的详细解释,帮助读者更好地理解和应用网络技术,应对数字化时代的挑战和机遇。
120 3
|
2月前
|
网络协议 安全 Go
Go语言进行网络编程可以通过**使用TCP/IP协议栈、并发模型、HTTP协议等**方式
【10月更文挑战第28天】Go语言进行网络编程可以通过**使用TCP/IP协议栈、并发模型、HTTP协议等**方式
70 13
|
2月前
|
传感器 缓存 网络协议
CoAP 协议与 HTTP 协议的区别
CoAP(Constrained Application Protocol)协议是为资源受限的设备设计的轻量级协议,适用于物联网场景。相比HTTP,CoAP具有低功耗、低带宽占用和简单易实现的特点,支持多播通信和无连接的交互模式。