博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
关于HTTP的一些基本概念
阅读量:6510 次
发布时间:2019-06-24

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

首先,有个基本的概念

HTTP协议是基于TCP/IP协议模型来传输信息的

         

HTTP协议用于在Internet上发送和接收消息,HTTP协议是一种请求-应答式的协议,客户端发送一个请求,服务器返回该请求的应答,HTTP协议使用可靠的TCP连接,默认端口是80.
在HTTP中,Client/Server之间的会话总是由客户端通过建立连接和发送HTTP请求包初始化,服务器不会主动联系客户端或要求与客户端建立连接,浏览器和服务器都可以随时中断连接.
HTTP请求
先说一下HTTP请求,http请丢是由请求行(requestline)、请求头部(header)、空行和请求数据4个部分组成,
请求数据可以有,也可以没有,但空行是不能省略的,用以将请求头和请求内容分开.
1.请求行:
请求行分为三个部分:请求方法、请求地址和协议版本.
请求方法: HTTP/1.1 定义的请求方法有8种:GET、POST、PUT、DELETE、PATCH、HEAD、OPTIONS、TRACE。最常的两种GET和POST,如果是RESTful接口的话一般会用到GET、POST、DELETE、PUT。
请求地址: URL:统一资源定位符,是一种标志资源位置的方法。
协议版本: 协议版本的格式为:HTTP/主版本号.次版本号,常用的有HTTP/1.0和HTTP/1.1
2.请求头:
请求头部为请求报文添加了一些附加信息,由“名/值”对组成,每行一对,名和值之间使用冒号分隔.

3.请求数据:
可选部分,比如GET请求就没有请求数据。 下面是一个POST方法的请求报文:

POST  /index.php HTTP/1.1    请求行

Host: localhost
User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:10.0.2) Gecko/20100101 Firefox/10.0.2  请求头
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,/;q=0.8
Accept-Language: zh-cn,zh;q=0.5
Accept-Encoding: gzip, deflate
Connection: keep-alive
Referer: http://localhost/
Content-Length:25
Content-Type:application/x-www-form-urlencoded
  空行
username=aa&password=1234  请求数据
HTTP响应

HTTP响应报文主要由状态行、响应头部、空行以及响应数据组成。

1.状态行: 由3部分组成,分别为:协议版本,状态码,状态码描述。

其中协议版本与请求报文一致,状态码描述是对状态码的简单描述,所以这里就只介绍状态码。

状态码

状态代码为3位数字。

1xx:指示信息--表示请求已接收,继续处理。
2xx:成功--表示请求已被成功接收、理解、接受。
3xx:重定向--要完成请求必须进行更进一步的操作。
4xx:客户端错误--请求有语法错误或请求无法实现。
5xx:服务器端错误--服务器未能实现合法的请求。

下面列举几个常见的:

3.响应数据

用于存放需要返回给客户端的数据信息。

下面是一个响应报文的实例:

HTTP/1.1 200 OK  状态行

Date: Sun, 17 Mar 2013 08:12:54 GMT  响应头部
Server: Apache/2.2.8 (Win32) PHP/5.2.5
X-Powered-By: PHP/5.2.5
Set-Cookie: PHPSESSID=c0huq7pdkmm5gg6osoe3mgjmm3; path=/
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Content-Length: 4393
Keep-Alive: timeout=5, max=100
Connection: Keep-Alive
Content-Type: text/html; charset=utf-8
  空行
  
如何使用curl命令
curl命令是一个利用URL规则在命令行下工作的文件传输工具。它支持文件的上传和下载,所以是综合传输工具,但按传统,习惯称curl为下载工具。作为一款强力工具,curl支持包括HTTP、HTTPS、ftp等众多协议,还支持POST、cookies、认证、从指定偏移处下载部分文件、用户代理字符串、限速、文件大小、进度条等特征。
如何用Chrome开发者工具查看 HTTP 请求和响应
打开Chrome浏览器的任意一个页面,右键->检查->Network 然后输入网址或直接刷新页面,就可以看到浏览器与服务器交互的信息,随便点击一个,在右边就会显示出该文件请求和响应的过程.

转载地址:http://pebfo.baihongyu.com/

你可能感兴趣的文章
route工具
查看>>
通过 WIN32 API 实现嵌入程序窗体
查看>>
浅析__线段树延迟标记
查看>>
Asp.net 中,在服务端向客户端写脚本的常用方法
查看>>
【Android】保存Fragment切换状态
查看>>
JAVA数组的定义及用法
查看>>
SQL Server 权限的分类
查看>>
How to properly release Excel COM objects
查看>>
powershell 将文本转换成表格的还有一种方式
查看>>
web编码(转)
查看>>
django源码解析之BigIntegerField (一)
查看>>
[我给Unity官方视频教程做中文字幕]beginner Graphics – Lessons系列之网格Meshes
查看>>
windows上运行npm Error: ENOENT, stat 'C:\Users\
查看>>
直接拿来用!十大Material Design开源项目
查看>>
securt 延期
查看>>
你的Android不好用,都是因为这几点原因
查看>>
基于ffmpeg网络播放器的教程与总结
查看>>
20141204
查看>>
TP支持菜单动态生成RBAC权限系统数据库结构设计方案
查看>>
R.id.layout等不能识别:cannot be resolved or is not a field
查看>>