计算机网络基础-HTTP协议

1.HTTP协议采用 请求/响应 的工作方式,流程如下:
1.服务器不断监听TCP端口80(等待客户端发出连接请求)
2.客户端发送连接建立 请求
3.双方建立TCP连接
4.客户端向服务器发送页面请求(形式=HTTP请求报文)
5.服务器向客户端返回页面请求的响应
6.关闭TCP连接

2.HTTP 在应用层交互数据的方式=报文,报文分为 请求报文&响应报文

2.1请求行
作用:请求行:声明 请求方法、主机域名、资源路径&协议版本
结构:请求行的组成=请求方法+请求路径+协议版本
请求方法:定义 对请求对象的操作 共8种 GET、POST、HEAD、DELETE、PUT、TRACE、CONNECT、OPTION 最常用的是GET、POST、HEAD 若服务器=RESTful接口,则一般会用到GET、POST、DELETE、PUT
请求路径:URL中对的请求地址部分。
若URL=http://www.baidu.com/,则请求路径=/
若URL=http://www.weibo.com/288/home,则请求路径=/288/home
URL:统一资源定位符,一种自愿位置的抽象唯一标识。表示资源位置&访问资源的方法。由<协议>://<主机>:<端口>/<路径>组成
协议版本:定义HTTP的版本号。常用版本:HTTP/1.0、HTTP/1.1、HTTP/2.0
GET :发送的数据存放在URL中:直接附加在URL后、利用1个问号代表URL的结尾&请求参数的开始,URL的长度最长=2048个字符,传递参数的数据类型只允许ASCII字符,安全性差
POST:传递参数长度不受限制,参数的数据类型无限制,安全性好

2.2请求头
作用:声明 客户端、服务器/报文的部分信息
使用方式:采用“header(字段名):value(值)”的方式
2.2.1 请求和响应报文的通用Header

名称 作用
Content-Type 请求体/响应体的类型,如text/plain、application/json
Accept 说明接收的类型,可以多个值,用,(半角逗号)分开
Content-Length 请求体/响应体的长度,单位字节
Content-Encoding 请求体/响应体的编码格式,如gzip,deflate
Accept-Encoding 告知对方我方接收的Content-Encoding
ETag 给当前资源的标识,和Last-Modified、If-None-Match、If-Modified-Since配合,用于缓存控制
Cache-Control 取值为一般为no-cache或max-age=XX,XX为个整数,表示该资源缓存的有效期(秒)

2.2.2 常见请求Header

名称 作用
Authorization 用于设置身份认证信息
User-Agent 用户标识,如:OS和浏览器的类型和版本
If-Modified-Since 值为上一次服务器返回的Last-Modified值,用于确认某个资源是否被更改过,没有被更改过(304)就从缓存中读取
If-None-Match 值为上一次服务器返回ETag值,一般会和If-Modified-Since一起出现
Cookie 已有的Cookie
Referer 表示请求引用自哪个地址,比如你从页面A跳转到页面B时,值为页面A的地址
Host 请求的主机和端口号

2.3 请求体
作用:存放 需要发送给服务器的数据信息(Get请求无请求数据)
使用方式共3种
数据交换:请求体可任意类型,但服务器需额外解析 比如 {"name":"html","year":"5"}
键值对:键与值之间用“=”连接,每个键值对间用“&”连接 比如 key1=value1&key2=value2
分部分形式:请求体被分为多个部分 每段以--{boundary}开头=描述头 描述头后空一行接 内容 每段以--{boundary}--结束

2.4 请求报文示例
请求信息
请求行:请求方法=GET、URL 地址为:http://www.tsinghua.edu.cn/chn/yxsz/index.htm、协议版本:HTTP1.1
请求头:请求报文希望表明 主机域名&用户代理(Netscape浏览器)
请求体:存放的数据=键值对

请求报文示例
(请求行)GET/chn/yxsz/index.htm HTTP/1.1
(请求头)Host:www.tsinghua.edu.cn(表示主机域名)
User-Agent:Mozilla/5.0 (表示用户代理是使用Netscape浏览器)
(空行)(用于隔开请求头和请求体)
(请求体)key1=value1&key2&value2

3.HTTP响应报文
包括状态行:声明 协议版本,状态码,状态码描述
响应头:声明 客户端、服务器/报文的部分信息
响应体:存放 需发送的数据信息

3.1状态行
作用:声明协议版本,状态码,状态码描述
组成:状态行有协议版本、状态码、状态信息组成
协议版本:表示 服务器HTTP协议的版本 常用版本HTTP/1.0、HTTP/1.1、HTTP/2.0
状态码:表示 服务器返回的响应状态代码
状态信息:对状态码的简单解释
比如:3位十进制数字组成,分为5大类:
1xx:表示信息通知,如请求收到了或正在进行处理
2xx:表示成功,如接受或知道了
3xx:表示重定向,如果完成请求还必须采取进一步行动
4xx:表示客户端错误,请求包含语法错误/无法实现
5xx:表示服务器错误,服务器不能实现一种明显无效的请求
例子:
200:请求成功,请求内容与该响应一起返回
202:请求已被接受,但还没处理
301:请求的资源已被永久移动到新的位置
302:请求的资源被临时移动到新的位置
400:请求参数有误,当前请求无法被服务器理解
401:请求需要验证用户
403:不允许访问该地址
404:Not Found
408:请求超时
500:服务器内部错误
502:Bad Gateway网关出错

HTTP/1.1 202 Accepted(接受)、HTTP/1.1 404 Not Found(找不到)

3.2 响应头
3.2.1 请求和响应报文的通用头(和请求头一样)
3.2.2 常见响应Header

名称 作用
Date 服务器的日期
Last-Modified 该资源最后被修改时间
Transfer-Encoding 取值一般为chunked,出现在Content-Length不能确定的情况下,表示服务器不知道响应版体的数据大小,一般同时还会出现Content-Encoding响应头
Set-Cookie 设置Cookie
Location 重定向到另一个URL 如输入浏览器就输入baidu.com 会自动跳转到 https://www.baidu.com,就是通过这个响应头控制的
Server 后台服务器

3.3 响应体
作用:存放需返回给用户端的数据信息
使用方式:和请求体是一致的,同样分为:任意类型的数据交换格式、键值对形式和分不分形式

4.http与https的区别
http 原理:应用层 功能:不加密 性能:不安全 使用标准端口80 不需要ca申请证书

https原理:传输层 功能:加密(SSL加密,身份认证) 性能:安全 使用标准端口443 需要申请ca证书

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 195,898评论 5 462
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 82,401评论 2 373
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 143,058评论 0 325
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,539评论 1 267
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,382评论 5 358
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,319评论 1 273
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,706评论 3 386
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,370评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,664评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,715评论 2 312
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,476评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,326评论 3 313
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,730评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,003评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,275评论 1 251
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,683评论 2 342
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,877评论 2 335

推荐阅读更多精彩内容