博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
简单了解Http协议
阅读量:2059 次
发布时间:2019-04-29

本文共 2737 字,大约阅读时间需要 9 分钟。

1. Http协议入门

1.1 什么是Http协议

http协议:对浏览器客户端和服务器端之间数据传输的格式规范

2. Http请求

Http请求内容如下所示:

GET /text/hello HTTP/1.1               -请求行Host: localhost:8080 --请求头(包含该行和下面多个key-value对象)User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:35.0) Gecko/20100101 Firefox/35.0Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8Accept-Language: zh-cn,en-us;q=0.8,zh;q=0.5,en;q=0.3Accept-Encoding: gzip, deflateConnection: keep-alive                                    --一个空行name=admin&password=123             --(可选)实体内容

2.1 请求行

GET /text/hello HTTP/1.1

2.1.1 请求方式

GET是一种请求方式,常见的请求方式有: GET 、 POST、 HEAD、 TRACE、 PUT、 CONNECT 、DELETE。

常用的请求方式: GET 和 POST

2.1.2 请求资源

/text/hello是URI

这里简单说明一下URI和URL的不同:

URI: 统一资源标记符。/text/hello。用于标记任何资源。可以是本地文件系统,局域网的资源,可以是互联网。

URL: 统一资源定位符。如:。只能是互联网资源。是URI的子集。

2.1.3 Http协议版本

http1.1:当前浏览器客户端与服务器端建立连接之后,可以在一次连接中发送多次请求。

2.2 请求头

Accept: text/html,image/*      -- 浏览器接受的数据类型Accept-Charset: ISO-8859-1     -- 浏览器接受的编码格式Accept-Encoding: gzip,compress  --浏览器接受的数据压缩格式Accept-Language: en-us,zh-       --浏览器接受的语言Host: www.it315.org:80          --(必须的)当前请求访问的目标地址(主机:端口)If-Modified-Since: Tue, 11 Jul 2000 18:23:51 GMT  --浏览器最后的缓存时间Referer: http://www.it315.org/index.jsp      -- 当前请求来自于哪里User-Agent: Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0)  --浏览器类型Cookie:name=admin                     -- 浏览器保存的cookie信息Connection: close/Keep-Alive            -- 浏览器跟服务器连接状态。close: 连接关闭  keep-alive:保存连接。Date: Tue, 11 Jul 2000 18:23:51 GMT      -- 请求发出的时间

2.3 实体内容

只有post提交的参数才会放到实体内容中,用get方式的话则没有实体内容。

3. Http响应

和了解Http请求一样,先来看下Http响应内容是怎么样的:

HTTP/1.1 200 OK                --响应行Server: Apache-Coyote/1.1      --响应头(key-vaule)Content-Length: 24 Date: Fri, 30 Jan 2015 01:54:57 GMT                               --一个空行this is hello servlet!!        --实体内容

3.1 响应行

3.1.1 http协议版本

同上所述

3.1.2 状态码: 服务器处理请求的结果(状态)

常见的状态码 状态描述
200 表示请求处理完成并返回
302 表示请求需要进一步细化
404 表示客户访问的资源找不到
500 表示服务器的资源发送错误(服务器内部错误)

3.2 常见响应头

Location: http://www.it315.org/index.jsp   -表示重定向的地址,该头和302的状态码一起使用。Server:apache tomcat                 ---表示服务器的类型Content-Encoding: gzip                 -- 表示服务器发送给浏览器的数据压缩类型Content-Length: 80                    --表示服务器发送给浏览器的数据长度Content-Language: zh-cn               --表示服务器支持的语言Content-Type: text/html; charset=GB2312   --表示服务器发送给浏览器的数据类型及内容编码Last-Modified: Tue, 11 Jul 2000 18:23:51 GMT  --表示服务器资源的最后修改时间Refresh: 1;url=http://www.it315.org     --表示定时刷新Content-Disposition: attachment; filename=aaa.zip --表示告诉浏览器以下载方式打开资源(下载文件时用到)Transfer-Encoding: chunkedSet-Cookie:SS=Q0=5Lb_nQ; path=/search   --表示服务器发送给浏览器的cookie信息(会话管理用到)Expires: -1                           --表示通知浏览器不进行缓存Cache-Control: no-cachePragma: no-cacheConnection: close/Keep-Alive           --表示服务器和浏览器的连接状态。close:关闭连接 keep-alive:保存连接

转载请注明出处:

你可能感兴趣的文章
Python 格式化打印json数据(展开状态)
查看>>
Centos7 安装curl(openssl)和libxml2
查看>>
Centos7 离线安装RabbitMQ,并配置集群
查看>>
Centos7 or Other Linux RPM包查询下载
查看>>
运行springboot项目出现:Type javax.xml.bind.JAXBContext not present
查看>>
Java中多线程向mysql插入同一条数据冲突问题
查看>>
Idea Maven项目使用jar包,添加到本地库使用
查看>>
FastDFS集群架构配置搭建(转载)
查看>>
HTM+CSS实现立方体图片旋转展示效果
查看>>
FFmpeg 命令操作音视频
查看>>
问题:Opencv(3.1.0/3.4)找不到 /opencv2/gpu/gpu.hpp 问题
查看>>
目的:使用CUDA环境变量CUDA_VISIBLE_DEVICES来限定CUDA程序所能使用的GPU设备
查看>>
问题:Mysql中字段类型为text的值, java使用selectByExample查询为null
查看>>
程序员--学习之路--技巧
查看>>
解决问题之 MySQL慢查询日志设置
查看>>
contOS6 部署 lnmp、FTP、composer、ThinkPHP5、docker详细步骤
查看>>
TP5.1模板布局中遇到的坑,配置完不生效解决办法
查看>>
PHPstudy中遇到的坑No input file specified,以及传到linux环境下遇到的坑,模板文件不存在
查看>>
TP5.1事务操作和TP5事务回滚操作多表
查看>>
composer install或composer update 或 composer require phpoffice/phpexcel 失败解决办法
查看>>