HTTP协议简介 HTTP,即Hyper Text Transfer Protocol超文本传输协议。是用于万维网WWW (World Wide Web)服务器传输超文本到本地浏览器的传输协议,其基于TCP/IP通信协议传输数据。但由于HTTP以明文方式传输数据,缺乏安全性,后面又诞生了HTTPS,即HyperText Transfer Protocol Secure超文本传输安全协议,HTTPS也经由HTTP进行通信,但利用SSL/TLS加密数据包,提供对网站服务器的认证,保护交换资料的隐私和完整性。
使用HTTP协议的网站URL为http://开头,默认端口号为80;使用HTTPS协议的网站URL为https://开头,默认端口号为443。
接下来稍微对这两个协议进行一下拓展。
HTTP工作原理 HTTP工作于C/S,即客户端/服务端架构上,浏览器作为HTTP客户端,通过URL向HTTP服务端,即Web服务器发送请求,常见Web服务器有Apache、IIS等,Web服务器依据收到的请求向客户端发送对应的响应信息。
HTTP有以下三个特点:
无连接:限制每次连接只处理一个请求,服务端处理完客户端的请求并收到客户端的应答后就会断开连接,其优势在于节省传输时间; 媒体独立:只要客户端和服务端知道如何处理数据内容,任何类型的数据都可通过HTTP进行传输,客户端和服务端只需协商好MIME-type即可; 无状态:HTTP协议对事务处理没有记忆能力,缺少状态意味着若后续还想继续处理之前的信息将必须对所有数据进行重传,这样做可能导致每次连接传输的数据量增大。 HTTP协议通信流程如下:
请求方式 Des: HTTP 请求方法, HTTP/1.1协议中共定义了八种方法(也叫动作)来以不同方式操作指定的资源。
页面内容如下:
HTTP Method is GET Use CTF**B Method, I will give you flag. Hint: If you got 「HTTP Method Not Allowed」 Error, you should request index.php. 请求包如下:
GET /index.php HTTP/1.1 Host: challenge-ce480bbff14843e2.sandbox.ctfhub.com:10800 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Firefox/91.0 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8 Accept-Language: en-US,en;q=0.5 Accept-Encoding: gzip, deflate Connection: close Upgrade-Insecure-Requests: 1 Cache-Control: max-age=0 按照给出的方式,使用bp抓包并对网站发送请求:...