http协议(一):复习十八哥讲的http协议(0606)原理篇

本文详细解析了HTTP协议的基础知识与工作流程,包括GET和POST请求的详细过程,状态码的含义以及常见错误类型。同时,通过具体实例展示了HTTP协议在实际应用中的操作与响应,帮助读者掌握HTTP协议的核心内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本篇主要复习十八哥讲的http协议的原理,及基础知识。

原文地址:http://www.zixue.it/article-262-1.html 

一:理解协议

生活中的协议一样,一式双份多分。计算机世界有了协议,才能能沟通。ftp http smtp pop tcp/ip

你怎么问,我怎么答。一种共识就是。

二:工作流程

客户端------服务器。

0:没有关系

1:建立连接。形成虚拟电路.

2.客户端发送请求。服务器,返回响应信息。

3.断开连接。

三具体的请求和响应+get
请求:

1.请求行:请求方法:get post put delete trace options;请求路径;所用协议版本;

2.请求头信息

3.请求主体信息

  • 实例:cmd  telnet localhost 80  ctrl+] 并回车 打开回显功能

  • GET /0606/01.php HTTP/1.1
    Host:localhost 
    
    HTTP/1.1 200 OK
    Date: Sat, 21 Jun 2014 15:53:06 GMT
    Server: Apache/2.2.14 (Win32) PHP/5.4.0
    X-Powered-By: PHP/5.4.0
    Content-Length: 5
    Content-Type: text/html 
    
    hello

注意:头信息和主体信息之间有空格。

响应

响应行:协议版本;状态码;状态文字;

响应头信息:key:value

                 key:value

                 Content-Length: 5

响应主体:内容

四:post
POST /0606/02.php HTTP/1.1
Host: localhost
Content-type: application/x-www-form-urlencoded
Content-length: 23

username=zhangsan&age=28
五:http协议中的方法

get post head put trace delete options

head:只是确认内容还正常,不需要返回内容。

telnet www.zixue.it 80  ctrl+] 回车

HEAD / HTTP/1.1
Host:www.zixue.it

HTTP/1.1 200 OK
Server: nginx/1.2.0
Date: Sun, 22 Jun 2014 13:41:20 GMT
Content-Type: text/html; charset=utf-8
Connection: keep-alive
X-Powered-By: PHP/5.3.13
Set-Cookie: SSqb_2132_saltkey=N2xq2290; expires=Tue, 22-Jul-2014 13:41:20 GMT; p
ath=/; httponly
Set-Cookie: SSqb_2132_lastvisit=1403440880; expires=Tue, 22-Jul-2014 13:41:20 GM
T; path=/
Set-Cookie: SSqb_2132_sid=700au1; expires=Mon, 23-Jun-2014 13:41:20 GMT; path=/
Set-Cookie: SSqb_2132_lastact=1403444480%09forum.php%09; expires=Mon, 23-Jun-201
4 13:41:20 GMT; path=/
Set-Cookie: SSqb_2132_stats_qc_reg=deleted; expires=Thu, 01-Jan-1970 00:00:01 GM
T; path=/
Set-Cookie: SSqb_2132_cloudstatpost=deleted; expires=Thu, 01-Jan-1970 00:00:01 G
MT; path=/

未必允许或支持的:put trace options

PUT /0606/post.txt HTTP/1.1
Host:localhost

HTTP/1.1 405 Method Not Allowed
Date: Sun, 22 Jun 2014 13:57:37 GMT
Server: Apache/2.2.14 (Win32) PHP/5.4.0
Allow: GET,HEAD,POST,OPTIONS,TRACE
Content-Length: 234
Content-Type: text/html; charset=iso-8859-1

trace是代理有没有修改你的http请求

TRACE / HTTP/1.1
Host:localhost

HTTP/1.1 200 OK
Date: Sun, 22 Jun 2014 14:00:13 GMT
Server: Apache/2.2.14 (Win32) PHP/5.4.0
Transfer-Encoding: chunked
Content-Type: message/http

25
TRACE / HTTP/1.1
Host: localhost


0

options 探测一下,有哪些允许。

OPTIONS / HTTP/1.1
Host:localhost

HTTP/1.1 200 OK
Date: Sun, 22 Jun 2014 14:02:03 GMT
Server: Apache/2.2.14 (Win32) PHP/5.4.0
Allow: GET,HEAD,POST,OPTIONS,TRACE
Content-Length: 0
Content-Type: httpd/unix-directory
六:状态码,状态文字

常见200 404

2xx 成功

3xx 重定向  301/302  永久/临时 重定向  304 未修改 日期和etag 请求服务器的时候,如果日期,或者tag发生变化,请给我最新的。

php重定向:header('Location: http://www.baidu.com'); // 默认是302重定向

header('Location: http://www.baidu.com',true,301);//指定301,true:用301代替原来的头信息

307:重定向中保持传输中的数据。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="zh-CN">
<head>
<title>新建网页</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="description" content="" />
<meta name="keywords" content="" />
<script type="text/javascript">

</script>

<style type="text/css">
</style>
</head>
    <body>
        <form action="05.php" method="post">
            <input type="text" name="username" />
            <input type="submit" value="提交" />
        </form>
    </body>
</html>

05.php

header('Location: 06.php',true,307);

exit;
print_r($_POST);

06.php

print_r($_POST);

4xx 客户端错误

5xx 服务器错误

转载于:https://www.cnblogs.com/sbfnxk201/p/3801652.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值