我是靠谱客的博主 含蓄荔枝,最近开发中收集的这篇文章主要介绍http报文结构解析,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

欢迎关注微信公众号,想进入大型互联网公司的或提升自己能力的搜索微信公众号:“一起写程序” ,会分享系列文章,面试题等,希望大家能一起学习。

 

1,http的协议结构详解?

 

问题1:请求报文和响应报文的区别?

请求报文和响应报文唯一的区别就是,请求报文是请求行,响应报文是状态行。

 

问题2:请求报文和响应报文都是由哪三部分组成的?

请求报文:请求行,首部行,信息主体。

响应报文:状态行,首部行,信息主体。

 

问题3:http是为什么是无状态协议?

无状态协议:http协议不要去服务器保留(记忆)客户端任何的状信息。这样服务器端设计会变的简单。

 

问题4:http是否持续连接?

非持续连接:一个对象,一次tcp连接。

持续连接:只要是同一个服务器上的,一次连接。服务器发送多少个对象都不用重新连接。

例如:浏览一个网页有5张图片,浏览器请求服务器,服务器发送过来6个对象,5张图片和html文件。

如果是非持续连接,就需要tcp连接6次才能发送完。所有非常耗时间。而面向连接的只需要一次连接。(请求报文的connect方法有两个状态:keep-alive 和 close。

Close表示发送完这个请求对象之后,就可以关闭连接。(一个对象对于一个请求)

Keep-alive:表示发送完该对象,继续保持连接。)

 

在http1.0时候,不支持持续连接。

http1.1开始支持持续连接。

 

 

问题:请求报文格式:

请求行:

问题1:什么决定了请求报文的作用?

(1)方法:所谓的方法就是对请求的对象进行的操作,实际上就是一些命令。

所以请求报文的作用和类型由方法决定。

方法(操作)

作用

Get

请求url标志的文档。(请求url所对应的文档)

Post

向服务器发送数据

delete

删除url所对应的文档。

Put

在指明url下存储一个文档。

Head

请求url标志的文档的首部。

Option

请求一些选项的信息。

Trace

用来进行还回测试的请求报文。

Connect

用于代理服务器。

 

(2) url资源定位符,是请求方法的操作对象?

(3) 版本?

http1.0还是http1.1版本。

(4) CRLF是回车空格。

 

首部行:用来说明浏览器或者服务器的一下信息。

首部行可以有很多,也可以没有。

问题1:首部行包含两部分?

首部字段和它的值。

 

信息主体:

一般请求报文没有信息主体,只有在想服务器发送数据的时候,才会有信息主体。

 

(二)响应报文:

(1)响应报文的第一行是状态行:http版本,状态码,短语。

(2)状态行包括:http的版本,状态码,短语。

状态码是对客户端的反馈。

(3)短语:用来解释状态码的。

状态码:一般都是三个数字。

分为5打类,33种。

1XX:表示通知的信息,如:请求正在处理。

2XX:表示成功,如接受或知道了。

3XX:表示重定向,表示要完成请求,必须采取进一步的行动。

4XX:表示客户的差错,如请求有错误的语法或不能完成。

5XX:表示服务器的差错,如服务器失效无法完成请求。

 

服务器给客户端的状态:我知道了,我正在处理,我还需要其他资源才能处理,你发错了,我不能解决。五种状态。

 

 

最后

以上就是含蓄荔枝为你收集整理的http报文结构解析的全部内容,希望文章能够帮你解决http报文结构解析所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(57)

评论列表共有 0 条评论

立即
投稿
返回
顶部