概述
欢迎关注微信公众号,想进入大型互联网公司的或提升自己能力的,搜索微信公众号:“一起写程序” ,会分享系列文章,面试题等,希望大家能一起学习。
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报文结构解析所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复