应用层协议之HTTP协议

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

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协议模拟请求百度首页

  1. 使用cmd,进入命令页面
  2. 输入命令 telnet www.baidu.com 80,并回车

回车前

1.png

回车后

2.png

  1. ctrl + ](两个按键同时按下),然后回车

按下按键后,回车前

扫描二维码关注公众号,回复: 14313461 查看本文章

4.png

回车后

3.png

  1. 输入http请求协议格式

    4.1 GET / HTTP/1.1 或 GET /index.html /HTTP、1.1,回车

    4.2 Host:www.baidu.com,回车

    4.3 再回车(空行)

  2. 返回请求结果

5.png

telnet不是内部或外部命令

  • 原因

    telnet客户端处于关闭状态

  • 解决方案

    1. 进入程序和功能页面,点击启动或关闭 Windows 功能

    6.png

    1. 启动telnet客户端,并重启

    7.png

猜你喜欢

转载自juejin.im/post/7112030725817401374