title: HTTP协议
date: 2023-07-18 19:06:46
categories: CTF-Web入门
description: HTTP协议总结
HTTP协议(超文本传输协议HyperText Transfer Protocol),是基于TCP协议的应用层传输协议,是一种客户端和服务端数据传输的规则。它是无状态协议,需要状态时可以使用Cookie。
协议介绍
URL
URL(Uniform Resource Locator)是统一资源定位符,用来在服务器上定位资源
http://www.example.com:8080/index.html?page=2&limit=10#section2
以这个URL为例
- http://是协议名称
www.example.com
是主机名(Host),可以是服务器的域名也可以是IP地址(比如192.168.0.1)- 8080是端口,用于指定服务器监听的特定端口号
- /index.html是服务器上的资源路径
- page=2和limit=10是查询参数,用?开始,多个用&分割,一般是get方法传值
- section是锚点,直接定位到锚点位置(具体参见HTML)
HTTP请求
一个请求由请求状态行、请求头(消息报头)和请求正文组成。
请求状态行
请求状态行定义了本次请求的请求方式,请求地址和请求的HTTP协议版本,由Method、部分URL和HTTP Version组成,例如:
GET /example.html HTTP/1.1 (CRLF)
主要的请求方式有GET和POST
请求头
请求头(消息报头)允许客户端向服务器发送一些附加信息和自己的信息,由一系列键值对组成,如图
请求正文
get方法会把内容放在url中,就是上文中的查询参数。post方法内容会被隐藏起来,使得一般用户不可见,也就是说放在请求正文中。
HTTP响应
一个响应也由三部分组成,包括响应状态行、响应头(消息报头)和响应正文。
响应状态行
由HTTP协议版本、状态码,和状态码的文本表述。例如:
HTTP/1.1 200 OK (CRLF)
响应状态码由三位数字组成,第一位定义了响应类别,有五种取值
- 1代表请求已经接受,继续处理
- 2代表请求已经被成功接收并且响应
- 3代表重定向
- 4代表客户端错误,常见错误是语法问题
- 5代表服务器端错误,服务器未能实现合法请求
上面这个200就代表请求成功接收并且被响应。
常见状态代码、状态描述、说明:
200
: OK - 客户端请求成功
400
: Bad Request - 客户端请求有语法错误,不能被服务器所理解
401
: Unauthorized - 请求未经授权,这个状态代码必须和WWW-Authenticate
报头域一起使用
403
: Forbidden - 服务器收到请求,但是拒绝提供服务
404
: Not Found - 请求资源不存在,eg:输入了错误的URL
500
: Internal Server Error - 服务器发生不可预期的错误 *
503
: Server Unavailable - 服务器当前不能处理客户端的请求,一段时间后,可能恢复正常
响应头
响应头类似于上面的请求头内容
响应正文
就是服务器向我们传来的html网页
HTTP协议就是这样了,日后经验充足了可能会增加内容,明天开始看SQL。
标签:协议,HTTP,请求,状态,响应,服务器 From: https://www.cnblogs.com/yoo2i/p/17638335.html