http协议笔记

1.什么是http协议?

    http协议是一种基于TCP/IP协议,服务器与浏览器进行超文本传输的一种应用层协议,工作于客户端与服务器端之间。

2.有哪些特点?

    传输速度快    请求方法(post,head,get)+路径    

    灵活    传输任意数据类型对象

    无连接    每次连接只处理一个请求。一次连接若有多个请求,可以将请求重叠进行,这样不需要等待一个请求结束后再发送下一个请求。

    无状态    无状态协议,无记忆功能。

3.http怎么构成?

    URI   VS     URL

               URI   ① 统一资源标识符(uniform resource identifiers),唯一的标识一个资源。

                        ② 访问资源的命名限制

                        ③  存放资源的主机名

                        ④  资源名称,由路径表示,着重强调资源

               URL  ① 统一资源定位符(uniform resource Locator),查找某个资源的足够信息,                               是一种特殊的URI。

                        ②  协议

                        ③ 有该资源的主机IP协议

                        ④ 主机资源的具体地址

4.http请求的request请求和response

        request

                构成:  请求行 + 请求头 + 空行 + 请求数据

                             请求行:请求行的构成为:请求方法字段+URL字段+HTTP协议版本号

                             请求头:

                                    User-Agent:产生请求的浏览器类型

                                    Accept:客户端可识别的内容类型列表

                                    Host:主机名。多个域名对应一个IP地址

                              请求数据:只有请求方法为post时,该区域存放数据,get的数据存放于请                                                                                求行中

     response

                构成:  状态行 + 消息报头 + 空行 +响应正文

                             状态行:HTTP协议版本号+状态码+状态消息

5.http的请求方法

    HTTP1.0:

        GET:请求页面,返回实体     

        POST:提交数据,请求处理(导致新的资源建立或已有资源进行修改)

        HEAD:类似于GET,但无具体类容

    HTTP2.0

        DELETE:请求删除指定页面

        PUT:取代服务器的内容(指定文档)

        CONNECT:代理服务器

        OPTIONS:查看服务器状态

        TRACE:回显服务器收到的请求

以上都是在HTTP1.0基础上新添加的请求方法

6.http的工作流程

    工作流程

          ①域名解析

          ②发起tcp的3次握手

          ③建立tcp的连接后,发起http的请求

          ④服务器响应http请求,浏览器得到html代码

          ⑤浏览器解析代码,请求动态资源

          ⑥页面资源渲染给客户端

7.相关知识点

        网络层(七层)

                 应用层    HTTP.FTP应用层协议(对数据进行包装)

                 表示层

                 会话层

                传输层    TCP/UDP传输层协议(定义数据如何传输)

                网络层    IP

                数据链路层

                物理层 

        get/post的区别

                get的数据在URL之后,以?进行分割传输

                get提交的数据大小有限制,post无限制(但浏览器一般会有限制)

                get通过Request.QueryString来获取变量的值。post用Request.Form来获取

                get会带来安全问题。  

        tcp的三次握手

                第一次:建立连接,客户端发送请求报文,SYN置1,等待服务器确认

                第二次:服务器收到消息,进行一系列报文改动后发送给客户端

                第三次:客户端收到报文后向服务器发送报文确认

        tcp的四次挥手

                第一次:客户端告诉服务端,没什么东西要发了

                第二次:服务端告诉客户端,我知道了。

                第三次:服务端告诉客户端,我先下了

                第四次:客户端告诉服务端,我知道了,我也下了

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。