首页 > 其他分享 >HTTP协议

HTTP协议

时间:2023-08-17 17:57:45浏览次数:29  
标签:协议 HTTP 请求 状态 响应 服务器

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就代表请求成功接收并且被响应。

常见状态代码、状态描述、说明:

200OK - 客户端请求成功

400Bad Request - 客户端请求有语法错误,不能被服务器所理解

401Unauthorized - 请求未经授权,这个状态代码必须和WWW-Authenticate报头域一起使用

403Forbidden - 服务器收到请求,但是拒绝提供服务

404Not Found - 请求资源不存在,eg:输入了错误的URL

500Internal Server Error - 服务器发生不可预期的错误 *

503Server Unavailable - 服务器当前不能处理客户端的请求,一段时间后,可能恢复正常

响应头

响应头类似于上面的请求头内容

响应正文

就是服务器向我们传来的html网页


HTTP协议就是这样了,日后经验充足了可能会增加内容,明天开始看SQL。

标签:协议,HTTP,请求,状态,响应,服务器
From: https://www.cnblogs.com/yoo2i/p/17638335.html

相关文章

  • https证书获取的方法及好处
    我们常说的https证书其实就是ssl证书,眼下为网站部署https证书是保障网站安全必不可少的一步。而https证书该如何获取呢?下面就简单介绍一下https证书获取的方法。https证书获取途径有两种:自己签发和由受信任的CA机构签发。自己给自己签发而来的证书也叫自签名ssl证书,这种类型的证书......
  • HTTP status code 408含义(转)
    原文:https://www.webfx.com/web-development/glossary/http-status-codes/what-is-a-408-status-code/Theserverdidnotreceiveacompleterequestmessagewithinthetimethatitwaspreparedtowait.AserverSHOULDsendthe“close”connectionoption1 inthe......
  • Apache HTTPd RCE漏洞复现(cve-2021-41773)
    0x01漏洞简介:      ApacheHTTPd是Apache基金会开源的一款流行的HTTP服务器。在ApacheHTTPd2.4.49版本中,存在一个路径穿越漏洞。在配置了Requireallgranted后,攻击者可利用路径穿越漏洞读取到Web目录之外的其他文件,比如/etc/passwd文件。同时若ApacheHTTPd开启了......
  • 通过iptables将http请求从A服务器转发到B服务器
    1、准备服务器、终端使用docker的容器来模拟所需的服务器、终端。dockerfile如下:FROMcentos:centos7asiptables-testRUNyuminstall-yiptables-services&&yuminstall-ytcpdumpdocker-compose.yml如下:version:"2.7"services:work0:build:.host......
  • RedHat 6.9查看开启关闭snmp协议
    yum安装SNMPsnmp相关的rpm包:net-snmp-utilsnet-snmp-libsnet-snmp配置SNMPsnmp.conf配置文件:cd/etc/snmp/vimsnmpd.conf 查看snmpd的状态servicesnmpdstatus查看snmpd的状态ps-ef|grepsnmpd查看进程是否存在lsof-i:端口号#列出某个占用端口......
  • Apache HTTPd换行解析漏洞复现CVE-2017-15715
    ApacheHTTPd换行解析漏洞复现CVE-2017-15715漏洞利用漏洞利用条件Apache:2.4.0~2.4.29实际存到后端时的文件名可控漏洞利用方式bp中更改存放到后端的文件名假设原文件名为"evil.php"文件存放在网站根目录下evil.php的内容为:<?php@eval($_REQUEST[1]);?>操作:......
  • 同一端口同一方法提供grpc和http流量支持
    项目地址https://github.com/lesterhnu/grpcdemo安装工具链goinstallgoogle.golang.org/protobuf/cmd/protoc-gen-gogoinstallgoogle.golang.org/grpc/cmd/protoc-gen-go-grpcgoinstallgithub.com/grpc-ecosystem/grpc-gateway/protoc-gen-grpc-gateway编写proto//hell......
  • 高效的HTTP代理,python如何助力
    在使用Python编写高效的HTTP代理时,可以采用以下一些小技巧来提升性能和效率:1、使用异步请求库:使用异步的HTTP请求库,如aiohttp或httpx,可以实现并发处理多个请求,提高代理的吞吐量和响应速度。2、复用连接:在处理多个请求时,尽量复用已建立的连接,而不是每次请求都创建新的连接。这可以通......
  • SMTP协议的历史和工作原理
    SMTP协议的发展可以追溯到20世纪70年代。当时,ARPANET(AdvancedResearchProjectsAgencyNetwork)需要一种用于发送和接收电子邮件的协议。1980年,网络中心(NetworkWorkingGroup)发布了第一个SMTP协议标准,即RFC821(SimpleMailTransferProtocol)。SMTP协议自此被广泛接受并投入使用......
  • 在html5中播放RTSP/RTMP/HLS/HTTP视频流媒体的几种方案,并支持H.265
    经过多年的项目实战和研发经验的积累,总结了一下对于H5视频可视化在视频播放上如何做到无插件H5展示的方法,尤其是契合安防行业的方案;除了HTTP、WebSocket类的传输协议,其他是无法通用地传输到浏览器的,所以,如果要做一款通用的H5视频播放器,基本上就是一款HTTP/WebSocket协议的视频播放......