本文已参与「新人创作礼」活动,一起开启掘金创作之路。
HTTP协议定义
- HTTP(Hyper Text Transfer Protocol)协议又叫做超文本传输协议,是一个简单的请求-响应协议。
HTTP协议格式
请求协议格式
- 请求行:请求方法+url+http版本。
- 请求报头:请求的属性,这些属性都是按照key:value的形式按行排列。
- 空行:遇到空行表示请求报头结束。
- 请求正文:请求正文允许为空字符串;如果请求正文存在,则在请求报头中会有Content-Length属性来标识请求正文的长度。
响应协议格式
- 状态行:http版本+状态码+状态码描述。
- 响应报头:响应的属性,这些属性以key:value的形式按行排列。
- 空行:遇到空行表示响应报头结束
- 响应正文:响应正文允许为空字符串;如果正文存在,则响应报头中会有Content-Length属性来标识响应正文的长度
以百度首页 www.baidu.com 为例
请求格式为:
GET / HTTP/1.1
Host: www.baidu.com
Accept: */*
响应格式为:
Accept-Ranges: bytes
Cache-Control: private, no-cache, no-store, proxy-revalidate, no-transform
Connection: keep-alive
Content-Length: 2381
Content-Type: text/html
Date: Tue, 21 Jun 2022 12:06:36 GMT
Etag: "588604c8-94d"
Last-Modified: Mon, 23 Jan 2017 13:27:36 GMT
Pragma: no-cache
Server: bfe/1.0.8.18
Set-Cookie: BDORZ=27315; max-age=86400; domain=.baidu.com; path=/
<!DOCTYPE html>
<!--STATUS OK--><html>
。。。网页的内容
</html>
在Windows系统使用TELNET协议模拟请求百度首页
- 使用cmd,进入命令页面
- 输入命令 telnet www.baidu.com 80,并回车
回车前
回车后
- ctrl + ](两个按键同时按下),然后回车
按下按键后,回车前
扫描二维码关注公众号,回复:
14313461 查看本文章
回车后
-
输入http请求协议格式
4.1 GET / HTTP/1.1 或 GET /index.html /HTTP、1.1,回车
4.2 Host:www.baidu.com,回车
4.3 再回车(空行)
-
返回请求结果
telnet不是内部或外部命令
-
原因
telnet客户端处于关闭状态
-
解决方案
- 进入程序和功能页面,点击启动或关闭 Windows 功能
- 启动telnet客户端,并重启