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

    HTTP协议(Hypertext Transfer Protocol)是基于TCP/IP协议的应用层协议,默认采用80端口,是Web开发的最基础最重要的知识。

     

     

     

     

    一、报文结构

    1、请求报文

     1.1 请求行:

    (1) Request Method -- 请求方法

    • GET : 请求获取Request-URI所标识的资源
    • POST : 在Request-URI所标识的资源后附加新的数据
    • HEAD : 请求获取由Request-URI所标识的资源的响应消息报头
    • PUT : 请求服务器存储一个资源,并用Request-URI作为其标识
    • DELETE : 请求服务器删除Request-URI所标识的资源
    • TRACE : 请求服务器回送收到的请求信息,主要用于测试或诊断
    • CONNECT : 保留将来使用
    • OPTIONS : 请求查询服务器的性能,或者查询与资源相关的选项和需求

    (2) Request URL : 请求地址(Uniform Resoure Locator)

    (3) 协议版本:格式为HTTP/主版本号.次版本号,如HTTP/1.0和HTTP/1.1

    1.2 Request Headers -- 请求头:

    (1) Accept :  告诉WEB服务器自己接受什么MIME类型,/ 表示任何类型,type/* 表示该类型下的所有子类型。常见MIME类型如:text/plain; text/html; text/css; application/javascript;  application/json;

    (2) Accept-Charset : 通知服务端可以发送的编码格式。如:gb2312,utf-8。

    (3) Accept-Language:浏览器申明自己接收的语言。如:zh-CN; zh; en-US; en。

    (4) Accept-Encoding:浏览器申明自己接收的编码方法,通常指定压缩方法,是否支持压缩,支持什么压缩方法。 如:gzip,deflate。

    (5) HOST : 接受请求的服务器地址,可以是IP:端口号,也可以是域名。如: Host:www.cnblogs.com。

    (6) User-Agent : 发送请求的应用程序名称。如:Chrome/57.0.2987.133

    (7) Cache-Control

    请求:

    • no-cache : 不要缓存的实体,要求现在从WEB服务器去取
    • max-age : 只接受 Age 值小于 max-age 值,并且没有过期的对象
    • max-stale :  可以接受过去的对象,但是过期时间必须小于 max-stale 值
    • min-fresh:接受其新鲜生命期大于其当前 Age 跟 min-fresh 值之和的缓存对象
    • no-store : 不允许缓存

    响应:

    • public : 可以用 Cached 内容回应任何用户
    • private : 只能用缓存内容回应先前请求该内容的那个用户
    • no-cache : 可以缓存,但是只有在跟WEB服务器验证了其有效后,才能返回给客户端
    • max-age:本响应包含的对象的过期时间
    • no-store : 不允许缓存

    (8) Connection 

    请求:

    • close :告诉WEB服务器或者代理服务器,在完成本次请求的响应后,断开连接,不要等待本次连接的后续请求了。
    • keepalive : 告诉WEB服务器或者代理服务器,在完成本次请求的响应后,保持连接,等待本次连接的后续请求。

    响应:

    • close : 连接已经关闭。
    • keepalive : 连接保持着,在等待本次连接的后续请求。
    • Keep-Alive:如果浏览器请求保持连接,则该头部表明希望 WEB 服务器保持连接多长时间(秒)。例如:Keep-Alive:300

    1.3 Request Payload -- 请求正文(可选):

     GET请求:没有请求正文,将传输数据附加到URL中。

     POST请求: 将传输数据放到请求正文中。

    2、响应报文

    2.1 响应行:

    (1) 协议版本:格式为HTTP/主版本号.次版本号,如HTTP/1.0和HTTP/1.1

    (2) 状态码、状态码描述: 状态代码为3位数字。

    • 100~199的状态码用于指定客户端应相应的某些动作。
    • 200~299的状态码表示成功。
    • 300~399的状态码指资源重定向。
    • 400~499的状态码指客户端请求出错。
    • 500~599的状态码指服务端出错。

          常用状态码:

          

    2.2 Response Headers -- 响应头:

    (1) Content-Type :  响应正文的类型。如: text/html; text/css; application/javascript;  application/json;

    (2) Content-Charset : 响应正文的编码格式。如:gb2312,utf-8。

    (3) Content-Language:响应正文使用的语言。如:zh-CN; zh; en-US; en。

    (4) Content-Encoding:响应正文的编码方法。 如:gzip,deflate。

    (5) Content-Length: 响应正文的长度。

    2.3 响应正文: 

    服务器返回给浏览器的数据。

  • 相关阅读:
    IO 单个文件的多线程拷贝
    day30 进程 同步 异步 阻塞 非阻塞 并发 并行 创建进程 守护进程 僵尸进程与孤儿进程 互斥锁
    day31 进程间通讯,线程
    d29天 上传电影练习 UDP使用 ScketServer模块
    d28 scoket套接字 struct模块
    d27网络编程
    d24 反射,元类
    d23 多态,oop中常用的内置函数 类中常用内置函数
    d22 封装 property装饰器 接口 抽象类 鸭子类型
    d21天 继承
  • 原文地址:https://www.cnblogs.com/Jeb-Sun/p/6674153.html
Copyright © 2011-2022 走看看