美文网首页
HTTP概念、原理、机制、数据格式

HTTP概念、原理、机制、数据格式

作者: 花椒人生 | 来源:发表于2018-11-09 11:12 被阅读0次

    1.HTTP的简介

    HTTP 的定义

    一种网络传输协议,位于TCP/IP 协议族的应用层。

    超文本传输协议(HTTP,HyperText Transfer Protocol),和HTML(Hypertext Markup Language),HTTP是互联网上应用最为广泛的一种网络协议。所用的www文件必须准守这个标准。

    超文本,既(扩展性文本),指的是HTML中可以有链向别的文本的链接。


    image.png

    2.HTTP的工作方式

    浏览器:

    用户在浏览器输入地址点击回车->浏览器拼装HTTP报文并发送请求给服务器->服务器处理请求后发送响应报文给浏览器->浏览器解析报文并且显示到界面

    APP:

    用户打开APP->Android端调用请求拼接报文并且发送给服务器->服务器处理请求后响应报文给手机->Android处理响应报文并且处理数据展示页面

    3.URL 和 HTTP报文

    URL 格式

    Https://www.baidu.com

    协议类型://服务器地址[:端口号]路径

    请求报文格式

    image.png

    响应报文格式

    image.png

    Request Method 请求方法

    GET

    1.用于获取服务器资源

    2.对于不对服务器资源进行修改的请求

    3.get请求没有请求体

    GET /users/1 HTTP/1.1
    Host: www.baidu.com

    POST

    1.用于修改或者增加资源

    2.发送给服务器的内容放置在body中

    POST /users HTTP/1.1
    Host: www.baidu.com Content-Type: application/x-www-form-urlencoded
    Content-Length: 13

    name=rengwuxian&gender=male

    PUT

    1.用于修改资源

    2.发送给服务器的内容放置在body中

    PUT /users/1 HTTP/1.1
    Host: www.baidu.com Content-Type: application/x-www-form-urlencoded
    Content-Length: 13

    gender=female

    Delete

    1.用于删除资源

    2.不发送body

    DELETE /users/1 HTTP/1.1
    Host: www.baidu.com

    Head

    1.和GET使用方法完全相同

    2.和GET唯一区别在于,返回的响应中没有Body

    Status Code 状态码

    状态吗是三位数字,用于对响应结果做出类型化描述

    1. 1xx:临时性消息。如:100(继续发送)、101(正在切换协议)
    2. 2xx:成功。如:200(响应成功)、201(创建成功)
    3. 3xx:重定向。如:301(永久移动)、302(暂时移动)、304(内容未改变)
    4. 4xx:客户端错误。如:400(客户端请求错误)、401(认证失败)、403(被禁止)、404(找不到内容)
    5. 5xx:服务器错误。如500(服务器内部错误)

    Header 首部

    作用:HTTP消息的metadata。

    Host

    目标主机。是在目标服务器上用于定位子服务器

    Content-Type

    指定Body的类型。主要有四类:

    1.text/html :请求Web页面是返回响应的类型,Body中返回html文本

    2.x-www-form-urlencoded :Web 页面纯文本表单的提交方式

    3.multitype/form-data:Web页面含有二进制文件时的提交方式

    4.application/json,image/jpeg,application/zip ……

    单项内容(文本或非文本都可以),用于Web api的响应或者POST/PUT的请求

    Content-Length

    指定Body的长度(字节)

    Trans:chunked(分块传输编码Chunked Transfer Encoding)

    用于当响应发起时,内容长度还没能确定的情况下。和Content-Length不同时使用。用途是尽早给出响应,减少用户等待。

    格式:

    HTTP/1.1 200 OK
    Content-Type: text/html
    Transfer-Encoding: chunked

    4
    Chun
    9
    ked Trans
    12
    fer Encoding
    0

    Location

    指定重定向的目标URL

    User-Agent

    用户代理,既是谁实际发送请求、接受响应的,例如手机浏览器等

    Range/Accept-Range

    按范围获取数据

    按范围取数据

    Accept-Range: bytes 响应报⽂文中出现,表示服务器器⽀支持按字节来取范围数据 Range: bytes=<start>-<end> 请求报⽂文中出现,表示要取哪段数据 Content-Range:<start>-<end>/total 响应报⽂文中出现,表示发送的是哪段数据

    作⽤用:断点续传、多线程下载。

    其他Headers

    Accept: 客户端能接受的数据类型。如 text/html

    Accept-Charset: 客户端接受的字符集。如 utf-8

    Accept-Encoding: 客户端接受的压缩编码类型。如 gzip

    Content-Encoding:压缩类型。如 gzip

    Cache

    在客户端或者中间网络节点缓存数据,降低从服务器获取数据的频率,用来提高网络性能

    相关文章

      网友评论

          本文标题:HTTP概念、原理、机制、数据格式

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