八股文--反射http学习

Posted ccsu_deer

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了八股文--反射http学习相关的知识,希望对你有一定的参考价值。

1、什么是反射机制

先了解两个概念:编译期和运行期。

编译期就是把源码交给编译器,编译成计算机可以执行文件的过程,只是把代码当成文本进行操作。

运行期是把编译后的文件交给计算机执行,知道程序运行节水,把磁盘中代码放到内存里

反射就是在运行期对于任意一个类都可以获取它的属性和方法,对于任意一个对象,都可以调用它的属性和方法,这种动态获取信息以及动态调用对象方法和属性的功能就是反射机制。

 

一、URI结构

1.协议部分

该​​URL​​的协议部分为​​http:​​,表示网页用的是​​HTTP​​协议,后面的​​//​​为分隔符

2.域名部分

域名是​​www.fishbay.cn​​,发送请求时,需要向​​DNS​​服务器解析​​IP​​。如果为了优化请求,可以直接用​​IP​​作为域名部分使用

3.端口部分

域名后面的​​80​​表示端口,和域名之间用​​:​​分隔,端口不是一个​​URL​​的必须的部分。如果端口是​​80​​,也可以省略不写

4.虚拟目录部分

从域名的第一个​​/​​开始到最后一个​​/​​为止,是虚拟目录的部分。其中,虚拟目录也不是​​URL​​必须的部分,本例中的虚拟目录是​​/mix/​

5.文件名部分

从域名最后一个​​/​​开始到​​?​​为止,是文件名部分;如果没有​​?​​,则是从域名最后一个​​/​​开始到​​#​​为止,是文件名部分;如果没有​​?​​和​​#​​,那么就从域名的最后一个​​/​​从开始到结束,都是文件名部分。本例中的文件名是​​76.html​,文件名也不是一个​​URL​​的必须部分,如果没有文件名,则使用默认文件名

6.锚部分

从​​#​​开始到最后,都是锚部分。本部分的锚部分是​​first​​,锚也不是一个​​URL​​必须的部分

7.参数部分

从​​?​​开始到​​#​​为止之间的部分是参数部分,又称为搜索部分、查询部分。本例中的参数是​​name=kelvin&password=123456​​,如果有多个参数,各个参数之间用​​&​​作为分隔符。

二、Request

HTTP的请求包括:请求行(request line)、请求头部(header)、空行 和 请求数据 四个部分组成。

八股文--反射、http学习_windows

Http请求消息结构

1.请求行

​GET​​为请求类型,​​/mix/76.html?name=kelvin&password=123456​​为要访问的资源,​​HTTP/1.1​​是协议版本

2.请求头部

从第二行起为请求头部,​​Host​​指出请求的目的地(主机域名);​​User-Agent​​是客户端的信息,它是检测浏览器类型的重要信息,由浏览器定义,并且在每个请求中自动发送。

3.空行

请求头后面必须有一个空行

4.请求数据

请求的数据也叫请求体,可以添加任意的其它数据。这个例子的请求体为空。

Response

一般情况下,服务器收到客户端的请求后,就会有一个​​HTTP​​的响应消息,HTTP响应也由​​4​​部分组成,分别是:状态行、响应头、空行 和 响应体。

八股文--反射、http学习_文件名_02

http响应消息格式

1.状态行

状态行由协议版本号、状态码、状态消息组成

2.响应头

响应头是客户端可以使用的一些信息,如:​​Date​​(生成响应的日期)、​​Content-Type​​(MIME类型及编码格式)、​​Connection​​(默认是长连接)等等

3.空行

响应头和响应体之间必须有一个空行

4.响应体

响应正文,本例中是键值对信息

以上是关于八股文--反射http学习的主要内容,如果未能解决你的问题,请参考以下文章

Java面试 八股文每日3题:day16

前端八股文浏览器系列:浏览器渲染前端路由前端缓存(HTTP缓存)缓存存储(HTTP缓存存储本地存储)

Spring八股文

IOS开发-OC学习-常用功能代码片段整理

为啥我的 Ray March 片段着色器反射纹理查找会减慢我的帧速率?

OpenGL片段着色器不照亮场景