current position:Home>HTTP protocol

HTTP protocol

2022-09-23 07:36:10Welcome Big Brother to Little Brother Blog

Http协议

HTTP(超文本传输协议)

  1. The most widely used in the Internet应用层协议之一
  2. 设计HTTP最初的目的:提供一种发布和接收HTML页面的方法
  3. 后来用Http来传递的数据格式不仅仅是HTML,应用更加广泛

HTTP版本

HTTP/0.9 1991年

  • 只支持GET请求方法获取文本数据(比如HTML文档),不支持请求头、响应头,无法向服务器传递太多信息

HTTP/1.0 1996年

  • 支持POST、HEAD等请求方法,支持请求头、The corresponding top,支持更多数据类型(Not only confined to the text data)
  • Every time the browser requests are needed on the server to set up aTCP连接,请求处理完成后立即断开TCP连接

HTTP/1.1 1997年(最为经典、Using a wide range of versions)

  • 支持PUT、DELETE等请求方法
  • 采用持久连接(Connection:keep-alive),多个请求可以共用同一个TCP连接

HTTP报文格式

请添加图片描述

URL(同一资源定位符)

URL作为InternetThe only name on each page logo.是www的统一资源定位标志,简而言之URL就是web地址(网址)

URI和URL的关系:URI包含了URL

html/login.html,为URI,Couldn't be the only logo

http://localhost:8080/html/login.html 该URICan all over the Internet as a唯一标识,称为URL

URLIn the special characters of(中文、空格)都是采用UTF-8进行编码

请求方法

  • GET、HEAD POST PUT DELETE CONNECT OPTIONS TRACE
GET:常用于读取操作,请求参数直接拼在URL后面(浏览器对URL长度有限制)
POST:常用于添加、删除、修改的操作,Request parameters can be placed in the body(没有大小限制)
HEAD:请求得到与GETRequest the same corresponding,但没有响应体

使用场景:Before downloading large files,Take first phase size(HEAD),再决定是否需要下载(GET).以此节约带宽资源‘

OPTIONS:用于获取目的资源所支持的通信选项,比如 服务器支持的请求方法
PUT:用于对已存在的资源进行整体覆盖
PATCH:用于对资源进行部分修改(资源不存在,会创建新的资源)
DELETE:删除指定的资源
TRACE:请求服务器回显其收到的请求信息,主要用于HTTP请求的测试或诊断
CONNEC:可以开启一个客户端与所请求资源之间的双向沟通的通道,可以用来创建隧道(tunnel)
  • Can be used to access theSSL(HTTPS)协议的站点

头部字段(Header Field)

头部字段可以分为4种

  • 请求头字段
  • 响应头字段
  • 实体头字段(有关实体主体的更多信息,As the main body length(Content-Length)或其MIME类型
  • 通用头字段(同时适用于请求和响应消息,但与消息主体无关的消息头)

请求头字段

请添加图片描述

RefererCan be used for hotlinking prevention

请添加图片描述

注意:q 值越大,表示优先级越高,如果不指定q值,默认是1.0(1.0是最大值)

请添加图片描述

响应头字段

请添加图片描述

请添加图片描述

请添加图片描述

状态码(status code)

5类:

  • 1xx:信息响应
  • 2xx:成功响应
  • 3xx:重定向
  • 4xx:客户端错误
  • 5xx:服务器错误
Scene status code
100 continue
  • The initial part of the request has been the client receives the,Has not been server refused to.客户端应该继续发送剩余的请求,The weak requests to complete,则忽略这个响应
  • 允许客户端发送带请求体的请求前,Determine whether the server is willing to accept the request(Through the request header to judge)
  • 如果服务器在不看请求体就拒绝请求时,The client sends a request body is inappropriate or ineffective
200 OK:请求成功
302 Found:The requested resource has been moved temporarily to theLocatuon头部指定的URL上
304 Not Modified:说明无需再次传输请求的内容,(This part has been the client cache)
400 Bad Request:语法无效,服务器无法理解该请求

401 Unauthorized:由于缺乏目标资源要求的身份验证凭证

403 Forbidden:服务器端有能力处理该请求,但是拒绝授权访问

404 Not Found:服务器端无法找到所请求的资源
405 Method Not Allowed:服务器禁止了使用当前HTTP方法的请求

406 Not Acceptable:服务器端无法提供与Accept-Charset以及Accept-Language指定的值相匹配的响应

408 Request Timeout:服务器想要将没有在使用的连接关闭

一些服务器会在空闲连接上发送此信息,即便是在客户端没有发送任何请求的情况下

500 Internal Server Error:所请求的服务器遇到意外的情况并阻止其执行请求
501 Not Implemented:请求的方法不被服务器支持,因此无法被处理

服务器必须支持的方法(即不会返回这个状态码的方法)(GET 和 HEADSupported by all servers)

502 Bad Gateway:作为网关或代理角色的服务器,从上游服务器(如tomcat)中接收到的响应是无效的
503 Service Unavailable:服务器尚未处于可以接受请求的状态

通常造成这种情况的原因是由于服务器停机维护或者已超载

form提交-常用属性、multipart/form-data

formForm the three properties of

  1. action:请求的URI
  2. method:请求方法
  3. enctype: Post请求时,请求体的编码方式
  • application/x-www-form-urlencoded(默认值)

用&分隔参数,用=分隔键和值,字符用URL编码方式进行编码

  • multipart/form-data

File upload must use this encoding

请求头和响应头 对应字段

  • Cookie和Set-cookie(会话跟踪)

  • Origin和Access-Control-Allow-Origin(用于跨域)

用&分隔参数,用=分隔键和值,字符用URL编码方式进行编码

  • multipart/form-data

File upload must use this encoding

请求头和响应头 对应字段

  • Cookie和Set-cookie(会话跟踪)

  • Origin和Access-Control-Allow-Origin(用于跨域)

跨域(CROS)

copyright notice
author[Welcome Big Brother to Little Brother Blog],Please bring the original link to reprint, thank you.
https://en.qdmana.com/2022/266/202209230624510941.html

Random recommended