zoukankan      html  css  js  c++  java
  • Http协议

    HTTP协议概述

    • 什么是HTTP协议?
    • HTTP协议的作用是什么?

     什么是HTTP协议?

      HTTP协议是建立在客户端和服务器之间的一个协议,在客户端和服务器之间需要数据的传输,而传输数据的时候,我们要按照指定的规则或者叫协议传输数据

      HTTP是建立在TCP/IP协议基础之上的一个网络协议。

      HTTP协议属于网络七层结构中最上层(应用层)的协议

      HTTP协议是一个无状态协议(不会记录每次访问时的信息)。

      HTTP时一个客户端服务器端请求和应该的标准(TCP)。客户端时终端用户,服务端时网站。

    什么是WEB资源?

      通过浏览器可以访问到的所有资源都是web资源

      WEB资源分为静态资源动态资源

        • 静态资源的数据是不变的,比如HTML、JPG、AVI。

        • 动态资源是通过后台程序展示页面数据的,比如Servlet请求。

    HTTP的作用是什么?

      为了约束客户端服务器之间传输web资源时格式

    HTTP协议版本

     注:HTTP/1.0和HTTP/1.1版本最大的区别:可以一个连接传输多个web资源(推荐HTTP/1.1版本)。

    HTTP协议组成

      由两部分组成:请求协议信息和相应协议信息。

      HTTP请求协议信息由三部分组成:请求行、请求头、请求体

     请求行

      它包含四部分(请求方法、URI、协议/版本、回车换行)

    GET /user.html HTTP/1.1

    请求方法:GET、POST等8种

     URI:Uniform Resource Identifier,统一资源标识符。它相当于一个网络资源的名称,只是名称的表现形式是/开头的路径形式。

    URL:Uniform Resource Location,统一资源定位符

    URL和URI的区别:URL是URI的子集。

    协议/版本:表示这次请求是通过那个协议发送的,比如HTTP协议、HTTPS等,使用的HTTP协议一般都是1.1版本的。

    请求头

      请求头的信息是以key:value形式展现的。

    请求头说明:

     MIME概述

     MEME格式:大类型/小类型,阅读时反过来,比如text/html读成html文本

    常见MIME类型如下:

     请求体

    GET请求的请求体的,请求参数都是通过请求行传给服务器端的。

    POST请求的请求体可以承载数据,请求头和请求体之间由一个空行作为分割线。

    通过表单POST提交的请求体的表现形式主要由三种:

     总结

    请求协议由三部分组成:行头体

      请求首行:请求方法web资源URI http/1.1

      请求头:key value方式,不同的请求头配置会告诉服务器端不同的辅助信息。

      请求体:承载传输的具体数据,不过请求体中的数据表现形式有三种,这三种都是通过form表单的enctype属性来决定的。

    • application/x-www-form-urlencoded:会对中文进行URL编码,并且多个参数以&连接,上传文件只能上传文件名称
    • text/plain:纯文本方式,不会对中文进行URL编码,不会使用&连接多个key-value参数,上传文件只能上传文件名称
    • multipart/form-data:多部件表现形式,这种方式主要可以完成文件上传,可以将上传的文件名和文件内容都传递给服务器端

    MIME:媒体类型,可以表示互联网web资源的扩展名。

    text/html  ===> .html

    text/plain ===> .txt

    image/jpeg  ===> .jpeg

    image/gif  ===> .gif

    响应协议由那几部分组成?

      由三部分组成:状态行、响应头、响应体(相应正文)。

     状态码说明

     响应头

    响应头中的信息也是key value方式展现的。

      响应体,也叫响应正文,里面包含服务器发给客户端的web资源信息。响应正文信息返回到浏览器,浏览器需要根据响应头中Content-type设置的MIME类型来打开响应正文信息。

  • 相关阅读:
    JSON格式解析和libjson使用简介(关于cjson的使用示例)
    我还没死!!微信公众号——自媒体的营销之路
    android应用开发-从设计到实现 3-4 静态原型的状态栏
    一种绝对提高开发水平的方法
    年近30------职业回想与思考
    LeetCode Populating Next Right Pointers in Each Node
    uploadify在火狐下上传不了的解决方式,java版(Spring+SpringMVC+MyBatis)具体解决方式
    struct和typedef struct
    奔五的人学ios:swift竟然没有字符串包括,找个简单的解决方法
    Floyd算法解说
  • 原文地址:https://www.cnblogs.com/chenyanbin/p/12033469.html
Copyright © 2011-2022 走看看