HTTP介绍及方法状态码

import socket
#创建一个socket对象
sk = socket.socket()
#绑定ip和端口
sk.bind(("127.0.0.1", 8050))
#监听
sk.listen()
#等待连接
while True:
    conn,addr=sk.accept()
    #接收数据
    data = conn.recv(1024)
    #打印接收的数据
    print(data)
    #发送数据
    conn.send(b"ok")
    #断开连接
    conn.close()

b‘GET / HTTP/1.1

Host: 127.0.0.1:8050

Connection: keep-alive

Cache-Control: max-age=0

Upgrade-Insecure-Requests: 1

User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36

Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,/;q=0.8\

Accept-Encoding: gzip, deflate, br

Accept-Language: zh-CN,zh;q=0.9

b‘‘

以上为请求头

1.客户端连接到web服务端

一个http客户端,通常是浏览器,与web服务器的http端口(默认为80)建立一个tcp套接字连接.列如,

http://www.luffycity.com

2.发送HTTP请求

通过tcp套接字,客户端向web服务器发送一个文本的请求报文,一个请求报文有请求行,请求头部,空行和请求数据4部分组成

3.服务器接收请求并返回HTTP响应

web服务器解析请求,定位请求资源,服务器将资源副本写到tcp套接字,由客户端读取,一个响应由状态行,响应头部,空行和响应数据4部分组成

4.释放连接tcp连接

若connection模式为close,则服务器主动关闭tcp连接,客户端被动连接‘,释放tcp连接connection模式为keepalive,则该连接会保持一段时间,在该时间内可以继续接受请求

5.客户端浏览器解析HTML内容

客户端浏览器首先解析状态行,查看表明请求是否成功的状态代码,然后解析每一个响应头,响应头告知一下为若干字节的HTML文档和文档的字符集,客户端浏览器读取响应数据HTML,根据HTML的语法对齐进行格式化,并在浏览器窗口中显示

在浏览器地址栏键入URL,接下回车之后会经历以下流程:

1.浏览器向DNS服务器请求解析该URL中的域名所对应的IP地址:

2.解析出ip地址后,根据该IP地址和默认端口80,和服务器建立TCP连接

3.浏览器发出读取文件(URL中域名后面部分对应的文件)的HTTP请求,该请求报文作为TCP三次握手的第三个报文的数据发送给服务器

4.服务器对浏览器请求做出响应,并把对应的html文本发送给浏览器

5.释放TCP连接

6.浏览器将该html文本并显示内容

推荐用书HTTP权威指南

HTTP请求方法  方式8种

  1.get:获取到一个页面

  2.head

  3.post:提交数据

  4.put:向指定位置上传最新内容

  5.delete:请求服务器删除request--url所标识的资源

  6.trace:回复显示器收到的请求,主要用于测试或诊断

  7.options:使服务器传回资源所支持的所有http请求方法,用""双引号来代替资源名称,向web服务器发送options请求,可以测试服务器功能是否正常运作

  8.connect:http/1.1协议中预留给能够将连接改为管道方式的代理服务器,通常用于ssl加密服务器的连接(经由非加密的http代理服务器)

HTTP状态码

状态代码的第一个数字代表当前响应的类型:

  1. 1xx消息---请求已被服务器接收,继续处理

  2. 2xx消息----请求已成功被服务器接收,处理,并接受

  3. 3xx重定向-----需要后续操作才 能完成这一请求‘

  4. 4xx请求错误-----------请求含有词法错误或者无法被执行

  5. 5xx服务器错误------服务器在处理某个正确请求时发生错误

URL

  超文本传输协议(HTTP)的统一资源定位符将从因特网获取信息的五个基本元素包括在一个简单的地址中:

*传送协议

*层级URL标记符号(为[//]固定不变)

*访问资源需要的凭证信息(可省略)

*服务器.(通常为域名,有时为IP地址)

*端口号(以数字方式表示,若为http的默认值‘80可省略‘)

*路径.(以‘/‘字符区别路径中的每一个目录名称)

*查询.(get模式的窗体参数,以"?"字符为起点,每个参数以shift键+数字7键隔开,再以"="分开参数名称与数据,通常以utf-8的URL编码,避开字符冲突的问题)

*片段 以#号键字符为起点

列子http://www.luffycity.com:80/news/index.html?id=250&page=1

其中http是协议

www.luffycity.com是服务器

80,是服务器上的网络端口号

/news/index.html是路径

?id=250&page=1是查询

原文地址:https://www.cnblogs.com/liurenli/p/10269139.html

时间: 2024-11-09 02:18:23

HTTP介绍及方法状态码的相关文章

【http】http的方法,状态码和组成部分

Http(Hypertext Transfer Protocol) HTTP协议(HyperText Transfer Protocol,超文本传输协议)是用于从WWW服务器传输超文本到本地浏览器的传输协议.它可以使浏览器更加高效,使网络传输减少.它不仅保证计算机正确快速地传输超文本文档,还确定传输文档中的哪一部分,以及哪部分内容首先显示(如文本先于图形)等. 用于http协议交互的信息被称为http报文.请求端(客户端)的http报文叫做请求报文,响应端(服务器)的叫做响应报文. 请求报文由请

HTTP常用的状态码

一.200状态码: 成功2××:成功处理了请求的状态码. 1.200 :服务器已成功处理了请求并提供了请求的网页. 2.204:服务器成功处理了请求,但没有返回任何内容. 二.300状态码: 重定向3××:每次请求中使用重定向不要超过5次. 1.301:请求的网页已永久移动到新位置,当URLs发生变化时,使用301代码.搜索引擎索引中保存新的URL. 2.302:请求的网页临时移动到新位置,搜索引擎索引中保存原来的url. 3.304:如果网页自请求者上次请求后没有更新,则用304代码告诉搜索引

HTTP权威指南-报文与状态码

所有的报文都向下流动 报文流向 报文组成 HTTP方法 状态码 GET示例 HEAD示例 100~199 信息性状态码 200~299 成功状态码 300~399重定向状态码 400~499 客户端错误 500~599 服务器端错误 原文地址:https://www.cnblogs.com/jiqing9006/p/11116653.html

TCP/IP协议族(一) HTTP简介、请求方法与响应状态码

接下来想系统的回顾一下TCP/IP协议族的相关东西,当然这些东西大部分是在大学的时候学过的,但是那句话,基础的东西还是要不时的回顾回顾的.接下来的几篇博客都是关于TCP/IP协议族的,本篇博客就先简单的聊一下TCP/IP协议族,然后聊一下HTTP协议,然后再聊一下SSL上的HTTP(也就是HTTPS)了.当然TCP/IP协议族是个老生常谈的话题,网络上关于该内容的文章一抓一大把呢,但是鉴于其重要性,还是有必要系统的总结一下的. 一.TCP/IP协议组简述 在聊HTTP与HTTPS之前呢,我们先简

服务器返回的各种HTTP状态码介绍

HTTP状态码(HTTP Status Code)是用以表示网页服务器HTTP响应状态的3位数字代码.它由 RFC 2616 规范定义的,并得到RFC 2518.RFC 2817.RFC 2295.RFC 2774.RFC 4918等规范扩展. 所有状态码的第一个数字代表了响应的五种状态之一. 100系列码 从 100到199范围的HTTP状态码是信息报告码.基于各种原因考虑,大多数情况下我们 是很少看见这些代码的.首先,如果一个浏览器尝试访问一个网站,而网站返回这些代码时,它们往往都不会显示在

HTTP请求响应报文&&相关状态码&&GET_POST请求方法 总结

HTTP请求报文: 一个HTTP请求报文由四个部分组成:请求行.请求头部.空行.请求数据 1.请求行   请求行由请求方法字段.URL字段和HTTP协议版本字段3个字段组成,它们用空格分隔.比如 GET /data/info.html HTTP/1.1 方法字段就是HTTP使用的请求方法,比如常见的GET/POST 其中HTTP协议版本有两种:HTTP1.0/HTTP1.1 可以这样区别: HTTP1.0对于每个连接都的建立一次连接一次只能传送一个请求和响应,请求就会关闭,HTTP1.0没有Ho

http访问过程和web访问时返回状态码介绍

一次完整的http请求处理过程: (1) 建立或处理连接:接收请求或拒绝请求: (2) 接收请求:接收来自于网络上的主机请求报文中对某特定资源的一次请求的过程: (3) 处理请求:对请求报文进行解析,获取客户端请求的资源及请求方法等相关信息: (4) 访问资源:获取请求报文中请求的资源: (5) 构建响应报文: (6) 发送响应报文: (7) 记录日志: status(状态码): 1xx:100-101, 信息提示: 2xx:200-206, 成功 3xx:300-305, 重定向 4xx:40

如何使用mysql(lamp)分离环境搭建dedecms织梦网站及apache服务器常见的403http状态码及其解决方法

一.实验环境 centos6.5+mysql5.5.32+php5.3.27 软件:DedeCMS-V5.7-GBK-SP1 本实验是使用lamp环境搭建,但mysql数据库与之分离,本实验成功的关键在于防火墙及其selinux关闭的前提下实现. 二.实验步骤 1)下载产品,并解压至www目录内 wget -O /home/chen/tools/  http://updatenew.dedecms.com/base-v57/package/DedeCMS-V5.7-GBK-SP1.tar.gz

02 http协议之方法与状态码

一:HTTP请求信息和响应信息的格式 请求: (1)请求行 (2)请求头信息 (3)请求主体信息(可以没有) (4) 头信息结束后和主体信息之间要空一行 请求行又分3部分 请求方法 请求路径 所用的协议 请求方法: GET POST PUT DELETE TRACE ,OPTIONS 所用的协议: 目前一般是HTTP/1.1, 0.9,1.0已经基本不用 二:状态码表示的含义 状态码 定义 说明 1XX 信息 接收到请求,继续处理 2XX 成功 操作成功地收到,理解和接受 3XX 重定向 为了完