学习目标:
- HTTP的报文、请求响应报文、方法、URI和URL
学习内容:
- HTTP报文——请求报文和响应报文;HTTP报文结构
- HTTP的---请求报文首部和响应报文首部
- 方法
- URI和URL
目录
1.HTTP报文
1)HTTP的报文——请求报文和响应报文
https://i-blog.csdnimg.cn/blog_migrate/a8e7040e7a44d5e506ac747d74cdc50f.png" width="256" />
- HTTP协议的请求和响应报文中必定包含HTTP首部。首部内容为客户端和服务器分别处理请求和响应提供所需要的信息。对于客户端用户来说,这些信息中的大部分内容都无须亲自查看。
- 报文首部由几个字段构成。
、
报文首部—— 服务器端或客户端需处理的请求或响应的内容及属性 |
空行(CR+LF) |
报文主体——数据 |
必定是一端担任客户端角色,另一端担任服务器端角色。 客户端和服务器只是标记,可以交换 |
请求必定由客户端发出,而服务器端回复响应 |
HTTP报文——必有报文首部,不一定有报文主体 |
首部内容为客户端和服务器分别处理请求和响应提供所需要的信息 |
报文首部由字段构成 |
2)HTTP的请求报文首部和响应报文首部
HTTP请求报文的格式主要由三部分组成:请求行、请求头部和请求体。
- 请求行:包含HTTP方法、请求的URI和HTTP协议的版本。例如,GET /index.html HTTP/1.1。
- 请求头部:包含一些键值对,用冒号分隔。这些键值对提供了关于请求的附加信息,例如User-Agent、Accept、Host等。例如,User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36。
- 请求体:包含发送给服务器的数据。例如,在POST请求中,请求体可能包含表单数据或JSON数据。
以下是一个更详细的例子:
GET /index.html HTTP/1.1 Host: www.example.com User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8 Accept-Encoding: gzip, deflate, br Accept-Language: en-US,en;q=0.9
在这个例子中,用户通过GET方法请求www.example.com的index.html页面。使用的User-Agent表明这是一个来自Windows 10、64位架构的浏览器中Chrome 58版本。用户接受的媒体类型有HTML、XHTML+XML、XML、WebP图像和APNG,以及所有其他类型的媒体。 最后,
Accept-Encoding
和Accept-Language
分别表示客户端支持的内容编码和语言。在这个例子中,客户端支持gzip、deflate和br压缩,以及英语(美国)和英语(世界)。
https://i-blog.csdnimg.cn/blog_migrate/879b2694d7efb5e1fbd009739825a1a4.png" width="283" />
https://i-blog.csdnimg.cn/blog_migrate/2f141a2cd763a330d10363738295a509.png" width="286" />
除此之外,如果不是访问特定资源而是对服务器本身发起请求,可以用一个*来代替请求URI。下面这个例子是查询HTTP服务器端支持的 HTTP 方法种类。
OPTIONS * HTTP/1.1
首部字段——请求/响应首部字段、通用字段、实体字段
请求行——方法、URI、协议版本 |
请求首部字段——在首部字段 Host中写明网络域名或IP地址 |
通用首部字段 |
实体首部字段 |
其他——cookie等等 |
空行(CR+LF) |
报文主体——数据——可以没有 |
响应行——状态码的原因短语、协议版本、状态码 |
请求首部字段—— |
通用首部字段 |
实体首部字段 |
其他——cookie等等 |
空行(CR+LF) |
报文主体——数据——可以没有 |
3)方法
https://i-blog.csdnimg.cn/blog_migrate/6ff24200f64b2b043d639b4d30e69fb9.png" width="607" />
GET——获取资源, |
POST |
PUT |
HEAD |
DELETE |
OPTIONS |
TRACE |
CONNECT |
LINK |
UNLINE |
4)URI和URL
END…………
学习时间:
上课时
学习产出:
- 技术笔记 1遍
- 有错误请指出,作者会及时改正
https://i-blog.csdnimg.cn/blog_migrate/57e7e50472453ac73d62cb79614dac8d.png" width="15" />
https://i-blog.csdnimg.cn/blog_migrate/30ffc8c76f4891653aea0af51d588386.png" width="31" />