HTTP01-概念和基本原理

超文本传输协议,和HTML(超文本标记语言)一起诞生,用于网络上请求和传输HTML内容。是一种约定规则,约定客户端和服务器以什么样的格式发送数据,以什么样的方式响应数据。

一、HTTP基础

1.基本概念

超文本传输协议,和HTML(超文本标记语言)一起诞生,用于网络上请求和传输HTML内容。是一种约定规则,约定客户端和服务器以什么样的格式发送数据,以什么样的方式响应数据。

2.URL和HTTP报文

2.1 URL格式

三部分:协议类型、服务器地址(和端口号)、路径(Path)
协议类型://服务器地址[:端口号]路径

https://www.baidu.com/

2.2报文格式

  • 请求报文

  • 响应报文

3.Status Code状态码

  • 1xx:临时性消息

    • 具有兼容性的请求,服务器告诉客服端可以切换到HTTP2
    • 客户端向服务端传东西的时候,传的比较大,多次传输合成一个文件
  • 2xx:成功

    • 200 成功
    • 201 新建成功
  • 3xx:重定向

    • 客户端主动再做一次请求
    • 301 永久性迁移
    • 304 表示内容没有改变
  • 4xx:客户端错误

    • 400 客户端请求错误
    • 401 认证失败
    • 403 请求被禁止
    • 404 找不到内容
  • 5xx:服务器错误

    • 500 服务器内部错误

4.Header

HTTP消息的元数据(metadata)是数据的属性:数据的格式,数据的长度等

4.1 Host

Host服务器主机地址:

  • host请求头不是用来寻址的
  • 在浏览器封装好报文后,发出来请求之前使用DNS寻址。寻找是IP层做的事情
  • Host的作用是当一个主机有多个虚拟主机的时候,用来识别这个请求是发给哪个虚拟主机

4.2 Content-Length

  • 内容的长度(字节)
  • 二进制数据无法使用特殊符号来结束内容,因为可能这个特殊符号可能出现在内容中间

4.3 Content-type 指定body的类型

    1. text/html
      请求web页面时返回响应的类型,body中返回html文本

HTTP/1.1 200 OK 
Content-Type: text/html; charset=utf-8 
Content-Length: 853
 
<!DOCTYPE html> 
<html> 
<head>
<meta charset="utf-8"> 
 ........
    1. application/x-www-form-urlencoded

Web页面纯文本表单的提交方式

POST  /users  HTTP/1.1 
Host: api.github.com 
Content-Type: application/x-www-form-urlencoded 
Content-Length: 27
 
name=Hankkin&pwd=111111

    1. multitype/form-data

Web页面含有二进制文件时的提交方式

POST  /users  HTTP/1.1 
Host: blog.csdn.com 
Content-Type: multipart/form-data; boundary=---WebKitFormBoundary7MA4YWxkTrZu0gW 
Content-Length: 2382
 
------WebKitFormBoundary7MA4YWxkTrZu0gW Content-Disposition: form-data; name="name"
 
rengwuxian 
------WebKitFormBoundary7MA4YWxkTrZu0gW 
Content-Disposition: form-data; name="avatar"; filename="avatar.jpg" 
Content-Type: image/jpeg
 
JFIFHHvOwX9jximQrWa......
------WebKitFormBoundary7MA4YWxkTrZu0gW-
    1. application/json,image/jpeg,application/zip...

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

4.4 Location

重定向的目标URL

4.5 User-Agent

用户代理
用户请求网络时通过浏览器,手机客户端

4.6 Range/Accept-Ranges

指定body内容的范围

4.7 Cookie/Set-Cookies

5 Cache

二、HTTP工作原理

一次HTTP操作成为一个事务,其工作流程可分为四步:

    1. 首先客户端与服务器需要建立连接。只要单击某个超链接,HTTP的工作开始
    1. 建立链接后,客户端发送一个请求给服务器,请求方式的格式为:统一资源标识符(URL),协议版本号,MIME信息包括请求修饰符、客户端信息
    1. 服务器接到请求后,给予响应的响应信息,其格式为一个状态行,包括信息的协议版本号、一个成功或错误的状态码,MIME信息包括服务器信息,实体信息等
    1. 客户端接受到服务器返回的信息,断开链接