IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> Http协议以及交互方式,内容格式 -> 正文阅读

[网络协议]Http协议以及交互方式,内容格式

Http

? 超文本传输协议 (HTTP-Hypertext transfer protocol) 是一种详细规定了浏览器和万维网服务器之间互相通信的规则,通过因特网传送万维网文档的数据传送协议。HTTP是一个应用层协议,由请求和响应构成,是一个标准的客户端服务器模型。

? 客户端浏览器和tomcat服务器进行访问交互,其采用的协议是http,该协议规定了客户端和服务器之间的交互方式,以及交互内容的格式要求。

交互方式

http协议规定,默认情况下:

先由客户端(浏览器)向服务器(tomcat)发送请求(

request)服务器接收到请求后,根据请求的资源路径,在服务器内部部署的项目中,查找是否有该资源,如果该资源存在,那么服务器就会将该资源返回(静态资源),或者把该资源的运行结果返回(动态资源)如果该资源不存在,那么服务器就会返回一个状态码(404),表示本次访问的资源找不到不管资源存在还是不存在,服务器都会针对这次请求,返回一个结果,这个结果就被称之为响应(response)

客户端(浏览器)接收到本次请求的响应内容后,解析并显示出来此时,本次http协议下的访问结束。用户还可以再次发出请求,那么就重复上述过程。

内容格式

无论是客户端发送的请求内容,还是服务器返回的响应内容,在http协议中,都是有固定的格式要求的。

请求

客户端发送到服务器端的请求消息,称之为请求(request)

,其实就是一个按照http协议的规则拼接而成的字符Request请求消息包含三部分:请求行,request line消息报头(请求头),request head请求正文,request body

**请求行,**request line

//格式: CRLF表示回车和换行 Method Request-URI HTTP-Version CRLF

Method表示请求方法;一般为GET或者POST

Request-URI是一个统一资源标识符,本次请求的资源路径

HTTP-Version表示请求的HTTP协议版本,HTTP/1.1

例如,

GET /test.html HTTP/1.1

2、消息报头(请求头),request head

http请求报头的生成,主要有三种情况:

浏览器自动生成的请求

绝大部分正常用户访问都是这类情况,只要是用户主动输入网址访问时发送的http请求,那这些头

部字段都是浏览器自动生成的,比如host,cookie,user-agent, Accept-Encoding:等

浏览器插件

javascript脚本增加或者修改的header。JS能够控制浏览器发起请求,也能在这里增加一些header,

但是考虑到安全和性能的原因,对JS控制 header的能力做了一些限制,比如host和cookie, user-

agent等这些字段,JS是无法干预的

中间代理

如果用户请求要经过一些中间代理(比如运营商或者公司网关),中间代理能够查看和修改用户的

全部数据和任何头部字段。除非使用了HTTPS

http消息报头包括普通报头、请求报头、响应报头、实体报头这四大类,它们的作用是描述 客户端或者

服务器 的属性,并且都是由 名字+冒号+空格+值 组成,例如, Content-Type: text/html

普通报头

即可用于请求,也可用于响应,是作为一个整体而不是特定资源与事务相关联

例如,

Cache-Control

Connection

Date

Pragma

Transfer-Encoding

Upgrade

Via

请求报头

允许客户端传递关于自身信息和希望的响应形式

例如,

Accept

Accept-Charset

Accept-Encoding

Accept-Language

Authorization

Host

User-Agent

From

If-Modified-Since

If-Match

If-None-Match

If-Range

If-Unmodified-Since

Max-Forwards

Proxy-Authorization

Range

Referer

响应报头

允许服务器传递关于自身信息的响应

例如,

Location

Server

WWW-Authenticate

Age

Proxy-Authenticate

Public

Retry-After

Vary

Warning

实体报头

定义被传送资源的信息。即可用于请求,也可用于响应

例如,Content-Encoding

Content-Language

Content-Length

Conten-Type

Last-Modified

Expires

Allow

Content-Base

Content-Location

Content-MD5

Content-Range

Etag

extension-header

响应

服务器在接收和解析客户端的请求消息后,会返回给客户端一个HTTP响应消息(response)。

其实也是一个按照http协议的规则拼接而成的一个字符串。

HTTP响应也是由三个部分组成:

响应状态行,

response status line

消息报头(响应头),

response head

响应正文,

response body

1、响应状态行,response status line

//格式如下:CRLF表示回车和换行 HTTP-Version Status-Code Reason-Phrase CRLF

HTTP-Version表示服务器HTTP协议的版本

Status-Code表示服务器发回的响应状态代码

Reason-Phrase表示状态代码的文本描述

例如,

HTTP/1.1 200 OK 1

关于响应状态代码,共分为5种类型:

分类 分类描述

1xx 信息,服务器收到请求,需要请求者继续执行操作

2xx 成功,操作被成功接收并处理

3xx 重定向,需要进一步的操作以完成请求

4xx 客户端错误,请求包含语法错误或无法完成请求

5xx 服务器错误,服务器在处理请求的过程中发生了错误

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2021-10-16 19:59:41  更:2021-10-16 20:01:53 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年6日历 -2024/6/29 18:54:58-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码