美文网首页
HTTP协议

HTTP协议

作者: sortinnauto | 来源:发表于2018-03-23 21:39 被阅读0次

    HTTP,全称为超文本传输协议。HTTP协议是用于从WWW服务器传输超文本到本地浏览器的传送协议,基于TCP的连接方式。它不仅保证计算机正确快速地传输超文本文档,还确定传输文档中的哪一部分,以及哪部分内容首先显示等。


    OSI模型,即开放系统互联参考模型,它将计算机网络体系结构的通信协议分为七层。

    • 应用层 ——> 协议有HTTP、FTP、SMTP等
    • 表示层 ——> ASCII码、JPEG、MPEG、WAV等文件转换
    • 会话层 ——> 负责访问次序的安排等
    • 传输层 ——> 协议有TCP、UDP等
    • 网络层 ——> 三层交换机、路由器等属于此层,协议有IP、SPX
    • 数据链路层 ——> 二层交换机、网桥和网卡等属于此层
    • 物理层 ——> 集线器、中继器和传输链路属于此层

    HTTP1.1交互过程
    客户端与服务器建立连接之后,客户端可以向服务器端发送多个请求,并且在发送下个请求时,无须等待上次请求的返回结果。但是服务器必须按照接受客户端请求的先后顺序依次返回相应结果,以保证客户端能够区分出每次请求的响应内容。


    HTTP协议的主要特点

    • 支持C/S模式
    • 简单快速:客户向服务器请求服务时,只需传送请求方法路径。请求方法有GET、HEAD、POST,每种方法规定了客户端和服务器端联系的类型。因为HTTP协议简单,使得HTTP服务器的程序规模小,因此通信速度很快。
    • 灵活:HTTP允许传输任意类型的数据对象。正在传输的类型有Content-Type加以标记
    • 无连接
    • 无状态

    在Web开发中请求操作通常叫做request,响应操作叫做response
    HTTP请求响应报文的流程:
    在发送请求的时候,浏览器将用户输入的URL地址等按照HTTP协议的格式封装成了HTTP请求报文,存放在客户端的Socket对象中,服务器从Socket对象中获取报文,并且使用HTTP协议规定的方式进行解析。
    例如,客户端需要访问一个页面,服务器会在解析之后将页面的数据响应给客户端,在做出响应的时候,也会将数据封装在HTTP响应报文中,并存放在服务器的Socket对象中,这时客户端从Socket对象中获取响应报文,将响应数据解析成自己可以识别的字符。
    例如,返回数据是HTML页面,就渲染HTML和CSS,解析和执行JavaScript代码等。


    请求报文
    请求报文
    1. 请求行(上图第一行)
      由三部分组成:请求方式(GET)、资源路径(/)、使用的HTTP协议版本(HTTP/1.1)
    1. HTTP协议中常用的请求方式主要是GET和POST。
    
    2. 当用户在浏览器地址栏中直接输入某个URL地址或单击网页的一个超链接是,浏览器默认使用GET方式来发送
    请求。如果将网页中的form表单的method属性设置为POST,就会以POST方式发送请求。
    
    3. 需要注意的是,GET方式传送的数据量有限,最多不能超过1KB。
    
    4. 由于GET请求方式的参数信息都会在URL中明文显示('?'之后的内容为参数信息),而POST请求方式传递的
    参数信息隐藏在实体内容中,用户看不到,因此POST比GET请求方式更安全,实际开发中大多使用的也是POST方式。
    
    1. 请求消息头
      第二行到Cookie那一行为请求消息头,有key/value组成,每行一对,用':'分割。请求头部通知服务器有关于客户端请求的信息,典型的请求头有:
    · User-Agent: 产生请求的浏览器类型
    · Accept:客户端可识别的响应内容类型列表
    · Accept-Language:客户端可接受的自然语言
    · Accept-Encoding:客户端可接受的编码压缩格式
    · Host:请求的主机名
    · connection:连接方式
    · Cookie:存储于客户端扩展字段,向同一域名的服务器端发送属于该域的cookie。
    
    1. 空行
      最后一个请求头之后是一个空行,发送回车符和换行符,通知服务器后面不再有请求头。
    2. 请求体
      其内容是请求数据。请求数据不在GET方法中使用,而是在POST方法中使用。POST方法适用于用户填写表单的场景。

    响应报文
    响应报文(不再赘述)
    1. 响应状态行
    2. 响应消息头
    3. 空行
    4. 响应体

    相关文章

      网友评论

          本文标题:HTTP协议

          本文链接:https://www.haomeiwen.com/subject/lohfcftx.html